PageSourceSearch

https://static.clubhipico.cl/services/programa-resultados.js

js clubhipico.cl collected 2026-09-24 09:49:30 UTC 107,688 bytes, 2,203 lines download raw bytes

1let dataPrograma = null;
2let dataResultado = null;
3let dataApuestas = null;
4let dataPronosticosCarrera = null;
5let dataPozos = null;
6let dataEficienciaJinete = null;
7let dataEficienciaStud = null;
8let dataCambioPreparador = null;
9let dataCodigoCarrera = null;
10let dataApuestasEnResultado = null;
11let fechaCarrera = '';
12let dataRetiros = null;
13let dataRepetidosResultados = null;
14let Datafavorito = null;
15var comparador1 = null;
16var comparador2 = null;
17var comparador3 = null;
18var comparador4 = null;
19var ejemplares_data = [];
20var dataComparador = [];
21var k = 0;
22var limit = 5;
23
24function showResultados() {
25    $('.only-resultado').show();
26    $('.only-resultado').addClass('d-flex');
27    $('.only-resultado-slide').slideDown();
28    $('.only-programa').hide();
29    $('#body-comparador').hide();
30    $("[id^='ultimas-presentaciones-']").slideUp();
31    $('.show-resultado').addClass('disabled');
32    $('.show-programa').removeClass('disabled');
33    sortBy('posicion');
34    $('.video-yt-res').attr('height', $('.tje').height())
35    $('.only-movil').hide();
36    $('.only-desktop').hide();
37    $('.circle-group').removeClass('d-flex')
38    $('.programa-pronosticos').removeClass('d-flex')
39}
40
41function showPrograma() {
42    $('.programa-pronosticos').addClass('d-flex')
43    $('#body-comparador').show();
44    $('.only-resultado').hide();
45    $('.circle-group').addClass('d-flex')
46    $('.only-resultado').removeClass('d-flex');
47    $('.only-resultado-slide').slideUp();
48    $('.only-programa').show();
49    $("[id^='ultimas-presentaciones-']").slideUp();
50    $('.show-programa').addClass('disabled');
51    $('.show-resultado').removeClass('disabled');
52    sortBy('mandil');
53
54    let w = $(window).width();
55    if (w >= 720) {
56        $('.only-desktop').show();
57        $('.only-movil').hide();
58    } else {
59        $('.only-movil').show();
60        $('.only-desktop').hide();
61    }
62}
63
64function sortBy(data, order = 'asc') {
65
66    var mixer = mixitup('#lista-programa', {
67        animation: {
68            effects: 'fade translateZ(-100px)',
69            easing: 'cubic-bezier(0.645, 0.045, 0.355, 1)'
70        },
71        selectors: {
72            control: 'mix'
73        }
74    });
75
76    mixer.sort(data + ':' + order);
77}
78
79function tooglePresentaciones(rut) {
80    $('#ultimas-presentaciones-' + rut).slideToggle("slow", function () {
81    });
82
83    if (!$('#ultimas-presentaciones-menu-' + rut).hasClass('has-show')) {
84        $('#ultimas-presentaciones-menu-' + rut).addClass('has-show')
85    } else {
86        $('#ultimas-presentaciones-menu-' + rut).removeClass('has-show')
87    }
88}
89
90function setDataPrograma(response) {
91    dataPrograma = response;
92    Datafavorito = dataPrograma.mandil_favorito;
93    fechaCarrera = dataPrograma.fecha_carrera;
94    mainRenderPrograma();
95    _renderFotoFinish();
96    renderGrupoPollon();
97}
98
99function setDataResultado(response) {
100    dataResultado = response;
101    setDatosResultados();
102}
103
104function setDataApuestasCarrera(response) {
105    dataApuestas = response;
106    mainRenderJuegosEspeciales();
107}
108
109function setDataPozos(response) {
110    dataPozos = response;
111    mainRenderPozos();
112}
113
114function setDataRetiros(response) {
115    dataRetiros = response;
116
117}
118
119function setDataRepetidosEnResultados(response) {
120    dataRepetidosResultados = response;
121
122}
123
124function setDataApuestas(response) {
125    dataApuestasEnResultado = response;
126    mainRenderApuestasDisponibles();
127}
128
129function setDataPronosticosCarrera(pronosticos) {
130    dataPronosticosCarrera = pronosticos;
131}
132
133function setDataCambioPreparador(response) {
134    dataCambioPreparador = response;
135    getCambioPreparador();
136    runCambioMontas();
137}
138
139function setDatosEficienciaJinete(response) {
140    dataEficienciaJinete = response;
141}
142
143function setDatosEficienciaStud(response) {
144    dataEficienciaStud = response;
145}
146
147function runDebutantes(inscripcion) {
148    if (!inscripcion.ultimas_presentaciones.campanas.length) {
149        $('#' + inscripcion.rut_ejemplar + ' .icons-ejemplar').append($('<img title="Debutante" class="mr-3" src="' + directory_uri + '/web/assets/images/icons/debutante.svg" style="width: 18px;margin-top: 8px;" alt="Debutante">'));
150    }
151}
152
153function _mainRenderRepetidosResultados() {
154    let n_carrera = dataPrograma.numero_carrera;
155    let count = 0;
156    if (dataRepetidosResultados) {
157        dataRepetidosResultados.forEach(function (item) {
158
159            if (n_carrera == item.numero_carrera) {
160                $('#' + item.rut_ejemplar + ' .icons-ejemplar').append($('<img class="icon-type-elem invert mr-3" style="padding-top: 10px" src="' + directory_uri + '/web/assets/images/icons/repite.svg" width="17px"  aria-hidden="true">'));
161                count++;
162            }
163        });
164
165        $('#data-repetidos-' + n_carrera).html(count);
166    }
167
168}
169
170function setDatosResultados() {
171    $('#programas').ready(function () {
172
173        if (dataResultado) {
174
175            dataPrograma.inscripciones_resultados.forEach(function (inscripcion) {
176                if (inscripcion.posicion == 1) {
177                    $('#tiempo').html(inscripcion.tiempo);
178                }
179                var div = $('#' + inscripcion.rut_ejemplar);
180                var resultado = dataResultado.inscripciones_resultados.find(e => e.rut_ejemplar === inscripcion.rut_ejemplar);
181                if (resultado) {
182                    let posicion = resultado.posicion ? resultado.posicion : 1000;
183                    div.attr('data-posicion', posicion);
184                    var number = ''
185                    if (resultado.posicion < 25) {
186                        number = resultado.posicion <= dataPrograma.inscripciones_resultados.length ? resultado.posicion ? resultado.posicion + 'º' : '-' : resultado.distanciamiento;
187                    } else {
188                        if (resultado.posicion == 90) {
189                            number = 'RD';
190                        } else if (resultado.posicion == 91) {
191                            number = 'NT';
192                        } else if (resultado.posicion == 92) {
193                            number = 'SNP';
194                        }
195                    }
196
197                    div.find('.full-position').html(number);
198                    div.find('.distanciamiento').html(resolveNull(resultado.distanciamiento));
199                    div.find('.dividendo').html(resolveNull(resultado.dividendo));
200                    div.find('.peso-fina-s').html((inscripcion.peso_ejemplar ? inscripcion.peso_ejemplar : '-') + ' Kg');
201
202                } else {
203                    div.attr('data-posicion', inscripcion.partidor + 999);
204                }
205            });
206
207            mainRenderJuegosEspeciales(dataApuestas);
208            mainRenderDividendos(dataPrograma, dataResultado);
209            mainRenderVideo(dataPrograma);
210
211            $('.show-resultado').removeClass('disabled');
212
213            $('#teletrak').remove();
214            if (sessionStorage.getItem('resultados')) {
215                $('#lista-programa').css({'height': 'unset', 'opacity': '1'});
216                showResultados();
217                sessionStorage.removeItem('resultados')
218            }
219        } else {
220            $('.show-resultado').addClass('disabled');
221            $('#teletrak').show();
222        }
223        $('.show-resultado').html('<i class="fa fa-flag" aria-hidden="true"></i> Resultados');
224        $('.loading-programa').hide();
225    })
226
227}
228
229
230function getCambioPreparador() {
231    if (dataCambioPreparador.length) {
232        dataCambioPreparador.forEach(function (item) {
233            $('#' + item.rut_ejemplar + ' .icons-ejemplar').append($('<img class="mr-3 icon-type-elem invert" style="padding-top: 8px" src="' + directory_uri + '/web/assets/images/icons/stopwatchwhite.svg" width="17px" data-toggle="tooltip" data-placement="top" title="Cambio de Preparador, sale : ' + item.nombre_preparador_anterior + '" aria-hidden="true">'));
234            $('.preparador_rut_' + item.rut_ejemplar).html('<i class="fa fa-refresh mx-2" data-toggle="tooltip" data-placement="top" title="Cambio de Preparador, sale : ' + item.nombre_preparador_anterior + '" aria-hidden="true"></i> <span> ' + item.nombre_preparador_anterior + '</span>');
235            $('.preparador-cambio-' + item.rut_ejemplar).addClass('cambios-full');
236        });
237    }
238}
239
240
241function renderCambioPropiedad() {
242    let data = dataPrograma;
243    data.inscripciones_resultados.forEach(function (item) {
244        if (item.propietario_anterior.length) {
245            let stud = item.rut_stud;
246            var stud_anterior = null;
247            if (item.propietario_anterior[0]) {
248                stud_anterior = item.propietario_anterior[0].rut_propietario;
249            }
250            if (stud !== stud_anterior) {
251                $('#stud-change-' + stud_anterior).html('<i class="fa fa-refresh mx-2" data-toggle="tooltip" data-placement="top" title="Cambio de propiedad, sale : ' + item.propietario_anterior[0].nombre_propietario + '" aria-hidden="true"></i> <span> ' + item.propietario_anterior[0].nombre_propietario + '</span>');
252                $('#icons-' + item.rut_ejemplar).append($('<img class="icon-type-elem invert mr-3" style="padding-top: 10px" src="' + directory_uri + '/web/assets/images/icons/propietario.svg" width="23px" data-toggle="tooltip" data-placement="top" title="Cambio de Propiedad, stud anterior : ' + item.propietario_anterior[0].nombre_propietario + '" aria-hidden="true">'));
253                $('.propiedad-cambio-' + item.rut_ejemplar).addClass('cambios-full');
254            }
255        }
256    });
257}
258
259function renderIconReajuste() {
260    let data = dataPrograma;
261    data.inscripciones_resultados.forEach(function (item) {
262
263        if (item.reajuste_indice > 0) {
264            $('#' + item.rut_ejemplar + ' .icons-ejemplar').append($('<img title="Reajuste" class="mr-3 invert only-programa" src="' + directory_uri + '/web/assets/images/icons/reajuste.svg" style="width: 23px;margin-top: 8px;" alt="Reajuste">'));
265        } else {
266            return '';
267        }
268    });
269}
270
271
272function mainRenderPrograma() {
273    let params = {
274        'helperBar': true,
275    };
276    _renderBoxCarrera(dataPrograma, params);
277    mainRenderPozos();
278    mainRenderApuestasDisponibles();
279    _getInfoRating(dataPrograma.tc_codigo_carrera);
280    _renderInscripciones();
281    _renderEficiencia(dataPrograma);
282    $(function () {
283        $('[data-toggle="popover"]').popover()
284        $('[data-toggle="popover"]').on('click', function (e) {
285            $('[data-toggle="popover"]').not(this).popover('hide');
286        });
287    })
288}
289
290function _renderEficiencia(data) {
291    preparador(data);
292    var jinetes = [];
293    jinetes = data['inscripciones_resultados'];
294    var tipo_pista = data['numero_pista'];
295    var distancia_carrera = data['distancia'];
296    jinetes.forEach(d => calculoEficienciaJinete(d.rut_jinete, distancia_carrera, tipo_pista));
297}
298
299function calculoEficienciaJinete(rut_jinete, distancia, tipo_pista) {
300    var datajinete = dataEficienciaJinete;
301    if (datajinete) {
302        var jinete = datajinete.find(d => d.rut == rut_jinete);
303        var pista = tipo_pista == 1 ? 'p1' : 'p2';
304        var dist = distancia > 1400 ? 'd2' : 'd1';
305        var query = 'ef' + pista + dist;
306        if (jinete) {
307            var item = jinete[query] ? Math.round(jinete[query] * 10) / 10 : '0';
308
309            var result = null;
310            if (item == 999) {
311                result = 'DEBUTA'
312            } else {
313                result = item + '%';
314            }
315
316            $('.eficiencia-jinete-' + rut_jinete).html(result);
317        } else {
318            $('.eficiencia-jinete-' + rut_jinete).html('0%');
319        }
320    } else {
321        $('.eficiencia-jinete-' + rut_jinete).html('0%');
322    }
323
324}
325
326function _renderEficienciaComparador(data) {
327    preparador(data);
328    var jinetes = [];
329    jinetes = data['inscripciones_resultados'];
330    var tipo_pista = data['numero_pista'];
331    var distancia_carrera = data['distancia'];
332    jinetes.forEach(d => calculoEficienciaJineteComparador(d.rut_jinete, distancia_carrera, tipo_pista));
333}
334
335function calculoEficienciaJineteComparador(rut_jinete, distancia, tipo_pista) {
336    var datajinete = dataEficienciaJinete;
337    if (datajinete) {
338        var jinete = datajinete.find(d => d.rut == rut_jinete);
339        var pista = tipo_pista == 1 ? 'p1' : 'p2';
340        var dist = distancia > 1400 ? 'd2' : 'd1';
341        var query = 'ef' + pista + dist;
342        if (jinete) {
343            var result = jinete[query] ? Math.round(jinete[query] * 10) / 10 + '%' : '0%';
344            return result;
345        } else {
346            return '0%';
347        }
348    } else {
349        return '0%';
350    }
351
352}
353
354function calculoEficienciaStud(rut_preparador, distancia, tipo_pista, mandil) {
355    var data = dataEficienciaStud;
356    if (data) {
357        var stud = data.find(d => d.rut == rut_preparador);
358        var pista = tipo_pista == 1 ? 'p1' : 'p2';
359        var dist = distancia > 1400 ? 'd2' : 'd1';
360        var query = 'ef' + pista + dist;
361        if (stud) {
362            var item = stud[query] ? Math.round(stud[query] * 10) / 10 : '0';
363            var result = null;
364            if (item == 999) {
365                result = 'DEBUTA'
366            } else {
367                result = item + '%';
368            }
369            $('#eficiencia-preparador-' + mandil + '-' + rut_preparador).html(result);
370            $('#comp-eficiencia-preparador-' + mandil + '-' + rut_preparador).html(result);
371        } else {
372            $('#eficiencia-preparador-' + mandil + '-' + rut_preparador).html('0%');
373            $('#comp-eficiencia-preparador-' + mandil + '-' + rut_preparador).html('0%');
374        }
375    } else {
376        $('#eficiencia-preparador-' + mandil + '-' + rut_preparador).html('0%');
377        $('#comp-eficiencia-preparador-' + mandil + '-' + rut_preparador).html('0%');
378    }
379}
380
381function _renderMenuBoxCarrera(data, suspendida = false) {
382
383    let params = {
384        'showVideo': false
385    };
386
387    let video = '';
388    let link = '';
389
390    if (data.link_video) {
391        link = "'" + data.link_video + "'";
392    }
393
394    if (params.showVideo) {
395        video = '<li class="nav-item ">' +
396            '    <a  class="nav-link px-3 px-md-2 show-resultado" href="javascript:void(0);" onclick="showModalYoutube(' + link + ')">' +
397            '        <i class="fa fa-youtube-play" aria-hidden="true"></i>' +
398            '           Video' +
399            '    </a>' +
400            '</li>';
401    }
402
403    let teletrak = '<li class="nav-item" id="teletrak" style="display: none;">' +
404        '       <a class="nav-link px-3 px-md-2" target="_blank" href="http://apuestas.teletrak.cl">' +
405        '           <img rel="nofollow" src="' + directory_uri + '/web/assets/images/icons/black-head-horse-side-view-with-horsehair.svg" width="11px">' +
406        '       Juega Aquí' +
407        '  </a>' +
408        '</li>';
409
410
411    let programaMenu = '';
412
413    if (sessionStorage.getItem('page-resultados')) {
414        programaMenu = '';
415    } else {
416        programaMenu = '<li class="nav-item d-flex">' +
417            '                <a  class="nav-link px-3 px-md-2 show-programa disabled d-flex" href="javascript:void(0);" onclick="showPrograma()">' +
418            '                   <i class="fa fa-file mr-1" aria-hidden="true"></i> Programa' +
419            '                </a>' +
420            '                   <span class="info-circle d-flex" style="margin-top: 3px; margin-left: 81px; position: absolute;" data-toggle="popover" data-placement="left" data-content="Revisa el programa de la carrera"><i class="fa fa-info m-auto"></i></span>' +
421            '            </li>';
422    }
423
424    if(suspendida){
425
426        return programaMenu + '<li class="nav-item d-flex">' +
427            '                <a  class="nav-link px-3 px-md-2 d-flex show-resultado disabled" href="javascript:void(0);" onclick="showResultados()">' +
428            '                    <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>\n' +
429            '  <span class="sr-only">Loading...</span>' +
430            '                       Resultados' +
431            '                </a>' +
432            '                   <span class="info-circle d-flex ml-1" style="margin-top: 3px; margin-left: 89px !important; position: absolute;" data-toggle="popover" data-placement="top" data-content="Revisa el resultado de la carrera "><i class="fa fa-info mr-1 m-auto"></i></span>' +
433            '            </li>' +
434            '' + video +
435            '            <li class="nav-item only-resultado">' +
436            '                <a class="nav-link px-3 px-md-2 disabled" href="javascript:void(0);">' +
437            '                    <img rel="nofollow" class="bagde-pozos mr-1" src="' + directory_uri + '/web/assets/images/icons/badge.svg" width="12px">' +
438            '                    Pozos y Apuestas</a>' +
439            '                   <span class="info-circle d-flex ml-1" style="margin-top: -31px; margin-left: 137px!important; position: absolute;" data-toggle="popover" data-placement="right" data-content="Revisa los megapozos garantizas y apuestas disponible para la carrera "><i class="fa fa-info m-auto"></i></span>' +
440            '            </li>' +
441            '            <li class="nav-item only-programa">' +
442            '                <a class="nav-link px-3 px-md-2 disabled" href="javascript:void(0);">' +
443            '                    <img rel="nofollow" class="bagde-pozos mr-1" src="' + directory_uri + '/web/assets/images/icons/badge.svg" width="12px">' +
444            '                    Pozos y Apuestas</a>' +
445            '                   <span class="info-circle d-flex ml-1" style="margin-top: -31px; margin-left: 137px!important; position: absolute;" data-toggle="popover" data-placement="right" data-content="Revisa los megapozos garantizas y apuestas disponible para la carrera "><i class="fa fa-info m-auto"></i></span>' +
446            '            </li>' +
447            '' + teletrak;
448
449    }else{
450
451        return programaMenu + '<li class="nav-item d-flex">' +
452            '                <a  class="nav-link px-3 px-md-2 d-flex show-resultado disabled" href="javascript:void(0);" onclick="showResultados()">' +
453            '                    <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>\n' +
454            '  <span class="sr-only">Loading...</span>' +
455            '                       Resultados' +
456            '                </a>' +
457            '                   <span class="info-circle d-flex ml-1" style="margin-top: 3px; margin-left: 89px !important; position: absolute;" data-toggle="popover" data-placement="top" data-content="Revisa el resultado de la carrera "><i class="fa fa-info mr-1 m-auto"></i></span>' +
458            '            </li>' +
459            '' + video +
460            '            <li class="nav-item only-resultado">' +
461            '                <a class="nav-link px-3 px-md-2" href="javascript:void(0);" onclick="renderResultadosPagos();">' +
462            '                    <img rel="nofollow" class="bagde-pozos mr-1" src="' + directory_uri + '/web/assets/images/icons/badge.svg" width="12px">' +
463            '                    Pozos y Apuestas</a>' +
464            '                   <span class="info-circle d-flex ml-1" style="margin-top: -31px; margin-left: 137px!important; position: absolute;" data-toggle="popover" data-placement="right" data-content="Revisa los megapozos garantizas y apuestas disponible para la carrera "><i class="fa fa-info m-auto"></i></span>' +
465            '            </li>' +
466            '            <li class="nav-item only-programa">' +
467            '                <a class="nav-link px-3 px-md-2" href="javascript:void(0);" onclick="renderResultadosPagos();">' +
468            '                    <img rel="nofollow" class="bagde-pozos mr-1" src="' + directory_uri + '/web/assets/images/icons/badge.svg" width="12px">' +
469            '                    Pozos y Apuestas</a>' +
470            '                   <span class="info-circle d-flex ml-1" style="margin-top: -31px; margin-left: 137px!important; position: absolute;" data-toggle="popover" data-placement="right" data-content="Revisa los megapozos garantizas y apuestas disponible para la carrera "><i class="fa fa-info m-auto"></i></span>' +
471            '            </li>' +
472            '' + teletrak;
473
474    }
475
476}
477
478
479function renderResultadosPagos() {
480    $('.pozos-garantizados').slideToggle();
481    $('.apuestas-disponibles').slideToggle();
482}
483
484function preparador(data) {
485    var tipo_pista = data['numero_pista'];
486    var distancia_carrera = data['distancia'];
487    var cont = 0;
488    data.inscripciones_resultados.forEach(d => calculoEficienciaStud(d.rut_preparador, distancia_carrera, tipo_pista, d.partidor));
489}
490
491
492function calcularReajuste(indice_inscrito, reajuste_indice, rut_ejemplar, ajuste_indice) {
493    if (reajuste_indice && reajuste_indice > 0) {
494        $('#-icons' + rut_ejemplar).append($('<img title="Reajuste" class="mr-3 invert only-programa" src="' + directory_uri + '/web/assets/images/icons/debutante.svg" style="width: 18px;margin-top: 8px;" alt="Debutante">'));
495        $('#indice-' + rut_ejemplar).html('(' + indice_inscrito + '-' + (reajuste_indice + ajuste_indice) + ')');
496
497        return '<span class="font-14 extra-bold only-programa"> ( R- ) </span>';
498
499    } else {
500        return '';
501    }
502}
503
504function calcularReajusteBarra(indice_inscrito, reajuste_indice, rut_ejemplar) {
505    if (reajuste_indice && reajuste_indice > 0) {
506        renderReaujusteIcon(rut_ejemplar);
507        return '<span class="font-14 bold only-programa"> (-' + reajuste_indice + ') </span>';
508    } else {
509        return '';
510    }
511}
512
513function renderReaujusteIcon(rut_ejemplar) {
514    $('#' + rut_ejemplar + ' .icons-ejemplar').append($('<img class="icon-type-elem invert" style="padding-top: 10px" src="' + directory_uri + '/web/assets/images/icons/reajuste.svg" width="17px"  aria-hidden="true">'));
515}
516
517function _renderBoxCarrera(data) {
518
519    var jinetes = [];
520    let retiros = dataRetiros ? dataRetiros.length : 0;
521    let repetidos = '<span id="data-repetidos-' + data.numero_carrera + '">0</span>';
522
523    jinetes = data['inscripciones_resultados'];
524    var tipo_pista = data['numero_pista'];
525    var distancia_carrera = data['distancia'];
526    let fechaCarrera = data['fecha_carrera'];
527    let position = data['fecha_carrera'];
528    let suspendida = false;
529    if(fechaCarrera == '2024-06-14'){
530        suspendida = true;
531    }
532
533    if(fechaCarrera == '2024-06-21' && position >= 12){
534        suspendida = true;
535    }
536
537    let menu = _renderMenuBoxCarrera(data,suspendida);
538    getDataPistasPalizadas(data.fecha_reunion, true, data.numero_pista);
539    $('.pistas-widget').fadeIn();
540    $('#programas').append('<div class="col-md-12 bloque-carrera mt-3">' +
541        '                    <div class="row p-2">' +
542        '                        <div class="col-md-5">' +
543        '                            <div class="row no-gutters">' +
544        '                                <div class="col-auto">' + _g_renderNumeroCarrera(data, data.resultados, false) + '</div>' +
545        '                                <div class="col d-block d-md-none pl-3 text-right">' +
546        '                                    <img src="' + _g_renderPista(data.distancia, data.numero_pista) + '" alt="" width="200px">' +
547        '                                </div>' +
548        '                                <div class="col-12 col-md-9 pl-md-3 pt-2 pt-md-0" style="display: flex; align-items: center">' +
549        '                                    <div class="row">' +
550        '                                        <div class="extra-bold font-15 col-md-12 text-lowercase" id="nombrePremio">' + (getNombreCarrera(data)).toLowerCase() + '' +
551        '                                        </div>' +
552        '                                        <div class="light font-14 col-md-12">Pr. ' + data.nombre_premio + '</div>' +
553        '                                    </div>' +
554        '                                </div>' +
555        '                            </div>' +
556        '                        </div>' +
557        '                        <div class="col-md-7">' +
558        '                            <div class="row no-gutters" style="display: flex; align-items: center; height: 100%">' +
559        '                                <div class="col menu-detalle-carrera py-3 py-md-0">' +
560        '                                        <div class="bold ml-md-0 ml-3 font-13 black only-resultado time-responsive" style="position: absolute; bottom: 36px; left: 5px;" >' +
561        '                                           <i class="fa fa-clock-o mr-1" style="padding-top: 3px;"></i> Tiempo : <span class="ml-2" id="tiempo"></span></div>' +
562        '                                        <ul class="nav font-14 justify-content-left mx-auto" id="menu-carrera">' + menu + '</ul>' +
563        '                                        <div class="col-md-12">' +
564        '                                            <hr class="my-1 py-0 text-black" style="border-color:black;">
564' +
565        '                                        </div>' +
566        '                                        <div class="font-13 col-md-12">' +
567        '                                            <div class="left mr-2 mr-md-3">' +
568        '                                                <div class="detalle-base-carrera">' +
569        '                                                    <span class="extra-bold uppercase">INSCRITOS:</span> ' + data.inscripciones_resultados.length + '' +
570        '                                                </div>' +
571        '                                            </div>' +
572        '                                            <div class="left mr-2 mr-md-3">' +
573        '                                                <div class="detalle-base-carrera">' +
574        '                                                    <span class="extra-bold uppercase">RETIROS: </span> ' + retiros + '' +
575        '                                                </div>' +
576        '                   <span class="info-circle d-flex" style="margin-top: -15px;  margin-left:-13px; position: absolute;" data-toggle="popover" data-placement="left" data-content="Muestra la información de ejemplares retirados en tiempo real "><i class="fa fa-info m-auto"></i></span>' +
577        '                                            </div>' +
578        '                                            <div class="left mr-2 mr-md-3">' +
579        '                                                <div class="detalle-base-carrera">' +
580        '                                                    <span class="extra-bold uppercase">REPETIDOS: </span> ' + repetidos + '' +
581        '                                                </div>' +
582        '                   <span class="info-circle d-flex" style="margin-top: -15px;  margin-left:-13px; position: absolute;" data-toggle="popover" data-placement="left" data-content="Muestra la cantidad de ejemplares que corrieron en jornadas inmediatamente pasadas "><i class="fa fa-info m-auto"></i></span>' +
583        '                                            </div>' +
584        '                                        </div>' +
585        '                                </div>' +
586        '                                <div class="col-auto d-none d-md-block">' +
587        '                                <img style="width: 150px;" src="' + _g_renderPista(data.distancia, data.numero_pista) + '" alt="Pista CHS">' +
588        '                                </div>' +
589        '                            </div>' +
590        '                        </div>' +
591        '                    </div>' +
592        '                </div>' +
593        '' + _g_renderPremiosCarrera(data) +
594        '               <div class="col-md-12 mt-2 pozos-garantizados" style="display: none;">' +
595        '                     <div class="row no-gutters bg-dark text-white uppercase py-2">' +
596        '                         <div class="col-md-2 font-14">' +
597        '                             <div class="m-0 pl-2">POZOS <span class="text-secondary">ESTIMADOS</span></div>' +
598        '                         </div>' +
599        '                         <div class="col-md-10">' +
600        '                             <div class="row no-gutters font-12 light" id="pozos-carrera-' + data.numero_carrera + '">' +
601        '                             </div>' +
602        '                         </div>' +
603        '                     </div>' +
604        '                 </div>' +
605        '                 <div  class="col-md-12 apuestas-disponibles" style="display: none;">' +
606        '                      <div class="row no-gutters bg-dark text-white uppercase py-2 mt-2" style="border-bottom: 5px solid white;">' +
607        '                          <div class="col-md-2 font-14">' +
608        '                              <div class="m-0 pl-2">APUESTAS <span class="text-secondary">DISPONIBLES</span>' +
609        '                           </div>' +
610        '                       </div>' +
611        '                       <div class="col-md-10">' +
612        '                           <div class="row no-gutters font-12 light" id="apuestas-' + data.numero_carrera + '">' +
613        '                            </div>' +
614        '                         </div>' +
615        '                     </div>' +
616        '                 </div>' +
617        '' + _g_renderHelperBar());
618    jinetes.forEach(d => calculoEficienciaJinete(d.rut_jinete, distancia_carrera, tipo_pista));
619
620    $(function () {
621        $('[data-toggle="popover"]').popover()
622        $('[data-toggle="popover"]').on('click', function (e) {
623            $('[data-toggle="popover"]').not(this).popover('hide');
624        });
625    })
626
627}
628
629function _getInfoRating(tipo_carrera) {
630    if (tipo_carrera) {
631        dataCodigoCarrera = tipo_carrera;
632    }
633}
634
635function _renderInscripciones() {
636
637    let html = $('#lista-programa');
638    html.html('');
639
640    if (sessionStorage.getItem('resultados')) {
641        html.css({'height': '0', 'opacity': '0'});
642    }
643
644
645    dataPrograma.inscripciones_resultados.forEach(function (inscripcion) {
646        _renderContratiempo(inscripcion);
647        if (jQuery.inArray(inscripcion.rut_ejemplar, ejemplares_data) == -1) {
648            ejemplares_data.push(inscripcion.rut_ejemplar)
649            let mandil = inscripcion.partidor ? inscripcion.partidor : 1000;
650            html.append($('<div id="' + inscripcion.rut_ejemplar + '" class="bloque-programa col-md-12 mb-2 mix" data-mandil="' + mandil + '" data-posicion="1000" data-rut="' + inscripcion.rut_ejemplar + '">' +
651                '' + _renderDataFinaSangre(inscripcion) + '' +
652                '' + _renderContratiempo(inscripcion) + '' +
653                '' + _renderMenuFinaSangre(inscripcion) + '' +
654                '' + _renderCampanas(inscripcion) + '' +
655                '</div>'));
656        }
657        runDebutantes(inscripcion);
658
659    });
660    $('.b-table').bootstrapTable();
661    runRetiros();
662    runRepetidos();
663
664    renderCambioPropiedad();
665    _mainRenderRepetidosResultados();
666    renderIconReajuste();
667    if (!sessionStorage.getItem('resultados')) {
668        $('.loading-programa').hide();
669        let w = $(window).width();
670        if (w >= 720) {
671            $('.only-desktop').show();
672            $('.only-movil').hide();
673        } else {
674            $('.only-movil').show();
675            $('.only-desktop').hide();
676        }
677    }
678
679    $(function () {
680        $('[data-toggle="popover"]').popover()
681    })
682    runPronosticos();
683}
684
685function runDebutantes(inscripcion) {
686    if (!inscripcion.campanas_top.length) {
687        $('#' + inscripcion.rut_ejemplar + ' .icons-ejemplar').append($('<img title="Debutante" class="mr-3 invert" src="' + directory_uri + '/web/assets/images/icons/debutante.svg" style="width: 18px;margin-top: 8px;" alt="Debutante">'));
688    }
689}
690
691function runRetiros() {
692
693    let retiros = dataRetiros;
694    if (retiros) {
695
696        retiros.forEach(function (retiro) {
697            $('#' + retiro.rut_ejemplar).addClass('disabled-fina-sangre');
698            $('#' + retiro.rut_ejemplar).prepend($('<div class="box-retirado"><div class="m-auto"><img src="' + directory_uri + '/web/assets/images/icons/qj8uZk_3_.svg" width="20px" class="mb-2 mr-2"> RETIRADO</div></div>'));
699        });
700
701    }
702}
703
704function runPronosticos() {
705    try {
706        if (dataPronosticosCarrera.pronosticos_ariel) {
707            dataPronosticosCarrera.pronosticos_ariel.forEach(function (pronostico) {
708                $('#pronosticos-' + pronostico.cab1 + ' .ariel').show();
709                $('#pronosticos-' + pronostico.cab2 + ' .ariel').show();
710            });
711        }
712        if (dataPronosticosCarrera.pronosticos_felipe) {
713            dataPronosticosCarrera.pronosticos_felipe.forEach(function (pronostico) {
714                $('#pronosticos-' + pronostico.cab1 + ' .felipe').show();
715                $('#pronosticos-' + pronostico.cab2 + ' .felipe').show();
716            });
717        }
718        if (dataPronosticosCarrera.pronosticos_mario) {
719            dataPronosticosCarrera.pronosticos_mario.forEach(function (pronostico) {
720                $('#pronosticos-' + pronostico.cab1 + ' .mario').show();
721                $('#pronosticos-' + pronostico.cab2 + ' .mario').show();
722            });
723        }
724    } catch (e) {
725        console.log(e);
726    }
727
728}
729
730function runCambioMontas() {
731
732    let inscripciones_resultados = dataPrograma.inscripciones_resultados;
733    if (inscripciones_resultados) {
734        inscripciones_resultados.forEach(function (ejemplar) {
735            let cambio = ejemplar.cambio_monta;
736            cambio.forEach(function (item, i) {
737                if (i == 0) {
738                    $('#' + ejemplar.rut_ejemplar + ' .icons-ejemplar').append($('<img title="Cambio de Monta" alt="Cambio de Monta" class="mr-3 invert only-programa" src="' + directory_uri + '/web/assets/images/icons/cambio-monta.svg" style="width: 18px;margin-top: 10px!important;">'));
739
740                    $('#rut_jinete_' + ejemplar.rut_ejemplar).html('<i class="fa fa-refresh mx-2" data-toggle="tooltip" data-placement="top" title="Cambio de Monta, sale : ' + item.nombre_jinete_oficial + '" aria-hidden="true"></i> <span> ' + item.nombre_jinete_oficial + '</span>');
741                    $('.jinete-cambio-' + ejemplar.rut_ejemplar).addClass('cambios-full')
742                } else {
743                    $('.jinete-cambio-' + ejemplar.rut_ejemplar).removeClass('cambios-full')
744                }
745            })
746        });
747    }
748}
749
750function runRepetidos() {
751
752    let repetidos = dataPrograma.repetidos;
753    if (repetidos) {
754        dataPrograma.repetidos.forEach(function (repetido) {
755            $('#' + repetido.rut_ejemplar + ' .icons-ejemplar').append($('<img title="Repetido" alt="Repetido" class="mr-3 invert only-programa" src="' + directory_uri + '/web/assets/images/icons/repite.svg" style="width: 18px;margin-top: 9px;">'));
756        });
757    }
758
759    $(function () {
760        $('[data-toggle="popover"]').popover()
761    })
762}
763
764
765function getAccesorio(anteojeras) {
766    if (anteojeras == 'A') {
767        return '<span class="ml-2 bold">Accesorio </span> : Zorrito';
768    } else if (anteojeras == 'Y') {
769        return '<span class="ml-2 bold">Accesorio </span> : Anteojeras';
770    } else {
771        return '';
772    }
773}
774
775function renderGrupoPollon() {
776    let data = dataPrograma;
777    data.inscripciones_resultados.forEach(function (inscripciones) {
778        if (inscripciones.grupo_pollon) {
779            $('#' + inscripciones.rut_ejemplar + ' .icons-ejemplar').append($('<div title="Grupo Pollón" alt="Grupo Pollón" class="circle-group only-programa d-flex mr-2" style="margin-top: 9px;"><label class="m-auto font-12 text-white">g' + inscripciones.grupo_pollon + '</label></div>'));
780        }
781    });
782
783}
784
785function _renderDataFinaSangre(inscripcion) {
786
787    let fs_url = get_site_url + '/perfil-fina-sangre/?fs_rut=' + inscripcion.rut_ejemplar;
788    let sexo = resolveNull(inscripcion.sexo, '-');
789    let color = resolveNull(inscripcion.color, '-');
790    let dataProg = dataPrograma;
791    let edad_carrera = dataPrograma.edad;
792
793    let tipo = sexo + ',' + color + ',' + calcularEdadFS(inscripcion.fecha_nacimiento, dataProg.fecha_carrera,edad_carrera);
794
795    let chaquetilla = directory_uri + '/web/assets/images/no-stud.png';
796    if (inscripcion.rut_stud) {
797        chaquetilla = 'https://static.clubhipico.cl/chaquetillas/' + inscripcion.rut_stud + '.jpg';
798    }
799
800    const suplente = (dataPrograma) => {
801        const esCarreraObjetivo = dataPrograma.fecha_carrera === '2025-06-20' && dataPrograma.numero_carrera === 3;
802        const esPartidorSuplente = inscripcion.partidor >= 13 && inscripcion.partidor <= 15;
803
804        if (esCarreraObjetivo && esPartidorSuplente) {
805            return '<span class="bold font-14">(Suplente)</span>';
806        }
807
808        return '';
809    };
810
811    return `
812    <div class="row no-gutters p-2">
813        <div class="col-auto d-flex">
814            <div class="row no-gutters">
815                <div class="col-auto pr-2 only-resultado">
816                    <div class="full-position"></div>
817                </div>
818                <div class="col-auto pr-2">
819                    <div class="full-mandil mandil-${inscripcion.partidor}">
820                        ${inscripcion.partidor}
821                    </div>
822                </div>
823                <div class="col-auto pr-2 d-flex">
824                    <div class="bg-white p-3 d-flex img-border-radius">
825                        <img height="45" class="m-auto" src="${chaquetilla}">
826                    </div>
827                </div>
828            </div>
829        </div>
830        <div class="col-12 col-md p-2">
831            <div class="row">
832                <div class="col-12">
833                    <div class="ejemplar-name text-uppercase relative">
834                        <a style="position: relative" href="${fs_url}" class="text-darkk black" title="Ver perfil de ${capitalizar(inscripcion.nombre_ejemplar)}">
835                            ${inscripcion.nombre_ejemplar} ${suplente(dataPrograma)}
836                            <span class="text-lowercase normal">(${tipo.toLowerCase()})</span>
837                        </a>
838                        <label class="font-12">${inscripcion.nombre_padre}<span class="text-lowercase"> y </span>${inscripcion.nombre_madre}<span class="text-lowercase"> por </span>${inscripcion.nombre_abuelo_materno}</label>
839                        ${calcularReajuste(inscripcion.indice_inscrito, inscripcion.reajuste_indice, inscripcion.rut_ejemplar)}
840                        <label class="font-12">${getAccesorio(inscripcion.anteojeras)}</label>
841                    </div>
842                </div>
843            </div>
844            <div class="row">
845                <div class="col-md-11">
846                    <div class="row">
847                        ${_renderInfoEjemplar(inscripcion)}
848                    </div>
849                </div>
850                <div class="col-md-1 d-flex icon-trakus-program">
851                    <div class="row">
852                        <div class="col-12 d-md-none d-flex">
853                            <div class="row">
854                                <div class="col-md-3 font-12 only-movil pb-1">
855                                    <span class="black">
856                                        <img class="my-auto mr-2 img-trakus" width="15px" src="${directory_uri}/web/assets/images/trakus03.png" alt="trakus"> 1ros.200 mts.
857                                    </span> 
858                                    ${renderPrimero200(inscripcion)}
859                                </div>
860                                <div class="col-md-3 font-12 only-movil pb-1">
861                                    <span class="black">
862                                        <img class="my-auto mr-2 img-trakus" width="15px" src="${directory_uri}/web/assets/images/trakus03.png" alt="trakus"> Ult.200 mts.
863                                    </span> 
864                                    ${renderUlt200(inscripcion)}
865                                </div>
866                                <div class="col-md-3 font-12 only-movil pb-1">
867                                    <span class="black">
868                                        <img class="my-auto mr-2 img-trakus" width="15px" src="${directory_uri}/web/assets/images/trakus03.png" alt="trakus"> Tipo de Cab.
869                                    </span> 
870                                    ${renderTipoCaballo(inscripcion)}
871                                </div>
872                            </div>
873                        </div> 
874                    </div>
875                </div>
876            </div>
877        </div>
878    </div>
879    <div class="row no-gutters bg-white contratiempos contratiempos-rut-${inscripcion.rut_ejemplar}"></div>
880    `;
881
882
883}
884
885function _renderContratiempo(inscripcion) {
886    if (!inscripcion) {
887        return '';
888    }
889
890    var htmlwant = '';
891
892    if (inscripcion.contratiempos_pasados.length) {
893
894        var contratiempoPasado = inscripcion.contratiempos_pasados;
895        contratiempoPasado = contratiempoPasado[0];
896
897        let fecha = moment(contratiempoPasado.fecha_carrera).format('DD-MM-YYYY');
898        htmlwant += '   <div class="col p-1 px-3  only-programa">' +
899            '       <i class="fa fa-circle text-secondary"></i><span class="font-12 pl-3"><b>CONTRATIEMPO</b> (' + fecha + ') ' + contratiempoPasado.glosa + '</span>' +
900            '   </div>';
901    }
902    if (inscripcion.glosa_contratiempo != null) {
903
904        let fecha = moment(fechaCarrera).format('DD-MM-YYYY');
905
906        htmlwant += '   <div class="col p-1 px-3 only-resultado ">' +
907            '       <i class="fa fa-circle text-secondary"></i><span class="font-12 pl-3"><b>CONTRATIEMPO</b> (' + fecha + ') ' + inscripcion.glosa_contratiempo + '</span>' +
908            '   </div>';
909    }
910    return htmlwant;
911}
912
913function _renderMenuFinaSangre(inscripcion) {
914    let fs_url = get_site_url + '/perfil-fina-sangre/?fs_rut=' + inscripcion.rut_ejemplar;
915    return '<div class="row no-gutters only-programa">\n' +
916        '                    <div class="col-auto">\n' +
917        '                        <ul class="nav nav text-dark font-14  menu-items">\n' +
918        '                            <li class="nav-item">\n' +
919        '                                <a href="javascript:void(0)" id="ultimas-presentaciones-menu-' + inscripcion.rut_ejemplar + '" onclick="tooglePresentaciones(' + inscripcion.rut_ejemplar + ')" class="nav-link black">ÚLTIMAS PRESENTACIONES</a>\n' +
920        '                            </li>\n' +
921        '                            <li class="nav-item">\n' +
922        '                                <a href="' + fs_url + '#campana-completa" class="nav-link black has-show">CAMPAÑA COMPLETA</a>\n' +
923        '                            </li>\n' +
924        // '                            <li class="nav-item">\n' +
925        // '                                <a href="' + fs_url + '#huinchadas" class="nav-link black has-show">HUINCHADAS</a>\n' +
926        // '                            </li>\n' +
927        '                            <li class="nav-item">\n' +
928        '                                <a href="' + fs_url + '#aprontes" class="nav-link black has-show">APRONTES</a>\n' +
929        '                            </li>\n' +
930        '                        </ul>\n' +
931        '                    </div>\n' +
932        '                    <div  class="col-md d-flex programa-pronosticos" style="max-height: 35px;">' +
933        '                       <div class="m-auto w-100 m-md-0 text-center pb-3 pb-md-0">\n' +
934        '                        <div id="icons-' + inscripcion.rut_ejemplar + '" class="icons-ejemplar px-2 m-auto m-md-none float-left d-flex" style="max-height: 29px!important;">\n' +
935        '                        </div>\n' +
936        '                        <div id="pronosticos-' + inscripcion.partidor + '" class="px-2 float-right p-1 ">\n' +
937        '                            <img src="' + directory_uri + '/web/assets/images/club/ariel.png"\n' +
938        '                                title="Ariel Gómez" alt=" Pronósticos Ariel Gómez" class="foto-cdg ariel">\n' +
939        '                            <img src="' + directory_uri + '/web/assets/images/club/felipe.png"\n' +
940        '                                 title="Felipe Ogrodnik" alt=" Pronósticos Felipe Ogrodnik" class="foto-cdg felipe">\n' +
941        '                            <img src="' + directory_uri + '/web/assets/images/club/mario.png"\n' +
942        '                                 title="Mario Valdés" alt=" Pronósticos Mario Valdés" class="foto-cdg mario">\n' +
943        '                        </div>\n' +
944        '                        <div class="text-primary h-100 font-14 d-md-flex d-none" style="cursor: pointer" onclick="addToCompare(' + inscripcion.rut_ejemplar + ')">\n' +
945        '                            <div class="ico-add-compare my-auto d-flex" id="ico_compare_' + inscripcion.rut_ejemplar + '"><span class="font-14 text-primary m-auto">+</span></div> ' +
946        '                            <h4 class="my-auto font-13 d-flex" id="text_compare_' + inscripcion.rut_ejemplar + '"><span class="black ml-1">Comparador</span></h4>\n' +
947        '                        </div></div>\n' +
948        '                    </div>\n' +
949        '                </div>';
950
951}
952
953function _getNameRating(inscripcion) {
954    if (dataCodigoCarrera == '3C10' || dataCodigoCarrera == '3C20' || dataCodigoCarrera == '3C30' || dataCodigoCarrera == '3H40' || dataCodigoCarrera == '3P40' || dataCodigoCarrera == '3P10' || dataCodigoCarrera == '3P20' || dataCodigoCarrera == '3P30' || dataCodigoCarrera == '3HL1' || dataCodigoCarrera == '3HL2' || dataCodigoCarrera == '3HL3' || dataCodigoCarrera == '3C40') {
955        $('.rating_name').hide();
956        return '<span class="black">Rating </span>' + resolveNull(inscripcion.peso_pedido, '-');
957    } else {
958        return resolveRatingHandicap(inscripcion);
959    }
960}
961
962function resolveRatingHandicap(inscripcion) {
963    return '<span class="black"><span class="rating_name">Índice/Últ. Índice Gan</span> </span>' + resolveNull((inscripcion.indice_inscrito - inscripcion.reajuste_indice), '-') + '' + calcularReajusteBarra(inscripcion.indice_inscrito, inscripcion.reajuste_indice, inscripcion.rut_ejemplar) + ' <span class="rating_name">/ ' + calcularUltimoIndiceGano(inscripcion) + '</span>';
964}
965
966function getUrlEstadisticasJinete(rut) {
967    let dv = calculaDigitoVerificador(rut);
968    return get_home_url_carreras + '/estadisticas-jinete/?rut=' + rut + '&dv=' + dv;
969}
970
971function calculaDigitoVerificador(T) {
972    var M = 0, S = 1;
973    for (; T; T = Math.floor(T / 10))
974        S = (S + T % 10 * (9 - M++ % 6)) % 11;
975    return S ? S - 1 : 'K';
976}
977
978function _renderInfoEjemplar(inscripcion) {
979    let dataCarrera = dataPrograma;
980    var rut_anterior = '';
981    var nombre = '';
982    if (inscripcion.propietario_anterior.length) {
983        if (inscripcion.propietario_anterior[0]) {
984            rut_anterior = inscripcion.propietario_anterior[0].rut_propietario;
985            nombre = inscripcion.propietario_anterior[0].nombre_propietario;
986        }
987    }
988    let partidor = inscripcion.partidor;
989    let fav = Datafavorito == partidor ? 'd-inline-flex' : 'hide';
990    if (Datafavorito == partidor) {
991        let favoritoHtml = '<span class="mb-3 black pb-3"> FAVORITO : </span><span>' + inscripcion.nombre_ejemplar + ' |  <label class="mini-mandil mandil-' + partidor + '">' + partidor + '</label></span>';
992        $('#render-favorito').html(favoritoHtml);
993    }
994    let html =
995        '   <div class="col-md-3 font-12 jinete-cambio-' + inscripcion.rut_ejemplar + '"><span class="black">Jinete </span>' + inscripcion.nombre_jinete + ' ' + inscripcion.peso_jinete + ' Kg  <span id="rut_jinete_' + inscripcion.rut_ejemplar + '"></span></div>\n' +
996        '   <div class="col-md-3 font-12 only-programa relative only-movil"><div class="black d-inline-flex mr-1">Eficiencia Jinete </div><span class="eficiencia-jinete-' + inscripcion.rut_jinete + '"></span></div>\n' +
997        '   <div class="col-md-3 font-12 only-programa only-desktop preparador-cambio-' + inscripcion.rut_ejemplar + '">' +
998        '           <span class="black only-programa mr-1 ">Preparador </span>' + inscripcion.nombre_preparador + ' <span class="ml-1 preparador_rut_' + inscripcion.rut_ejemplar + '"></span>' +
999        '   </div>\n' +
1000        '   <div class="col-md-3 font-12 only-resultado">' +
1001        '           <div class="only-resultado"><span class="black only-resultado mr-2">Peso FS </span><span class="light peso-fina-s"></span></div>' +
1002        '   </div>\n' +
1003        '   <div class="col-md-3 font-12 only-resultado">' +
1004        '   </div>\n' +
1005        '   <div class="col-md-3 font-12 only-resultado">' +
1006        '   </div>\n' +
1007        '   <div class="col-md-3 font-12 only-resultado preparador-cambio-' + inscripcion.rut_ejemplar + ' ">' +
1008        '          <span class="black mr-1">Preparador </span>' + inscripcion.nombre_preparador + ' <span class="ml-1 preparador_rut_' + inscripcion.rut_ejemplar + '"></span>' +
1009        '   </div>\n' +
1010        '   <div class="col-md-3 font-12 only-resultado"><div class="only-resultado"><span class="black">Dividendo  </span><span class="dividendo ml-1 "></span></div></div>' +
1011        '   <div class="col-md-3 font-12 only-programa only-desktop">' +
1012        '           <div class="only-programa relative "><span class="black only-programa">Peso promedio FS </span>' + calcularPesoPromedio(inscripcion) + ' ' +
1013        '           </div>\n' +
1014        '   </div>\n' +
1015        '   <div class="col-md-3 font-12 only-programa  only-movil" ' + nombreAntiguoStudStyle(rut_anterior, nombre, inscripcion.rut_stud) + '><span class="black">Stud</span> ' + inscripcion.nombre_stud + '<span>' + nombreAntiguoStud(rut_anterior, nombre, inscripcion.rut_stud) + '</span></div>\n' +
1016        '   <div class="col-md-3 font-12 only-resultado"><div class="icons-ejemplar px-2 float-left filter-dark m-auto my-3 m-md-none " style="max-height: 25px!important"></div></div>' +
1017        '   <div class="col-md-3 font-12 only-programa only-desktop" >' +
1018        '       <span class="black"><img class="my-auto mr-2 img-trakus" width="15px" src="' + directory_uri + '/web/assets/images/trakus03.png" alt="trakus">1ros.200 mts.</span> ' + renderPrimero200(inscripcion) + '' +
1019        '   </div>\n' +
1020        '   <div class="col-md-3 font-12 only-resultado">' +
1021        '   </div>\n' +
1022        '   <div class="col-md-3 font-12 only-programa relative only-desktop"><div class="black d-inline-flex mr-1">Eficiencia Jinete </div><span class="eficiencia-jinete-' + inscripcion.rut_jinete + '"></span></div>\n' +
1023        '   <div class="col-md-3 font-12 only-movil preparador-cambio-' + inscripcion.rut_ejemplar + ' "><span class="black">Preparador </span>' + inscripcion.nombre_preparador + ' <span class="preparador_rut_' + inscripcion.rut_ejemplar + '"></span></div>\n' +
1024        '   <div class="col-md-3 font-12 only-programa relative"><div class="black d-inline-flex mr-1">Eficiencia Preparador </div><span id="eficiencia-preparador-' + inscripcion.partidor + '-' + inscripcion.rut_preparador + '"></span>' +
1025        '   </div>\n' +
1026        '   <div class="col-md-3 font-12 only-programa only-desktop">' + _getNameRating(inscripcion) + '</div>\n' +
1027        '   <div class="col-md-3 font-12 only-programa only-movil criador-cambio-' + inscripcion.rut_ejemplar + '"><span class="black">Criador</span> ' + inscripcion.nombre_haras + '</div>\n' +
1028        '   <div class="col-md-3 font-12 only-programa only-desktop">' +
1029        '       <span class="black"><img class="my-auto mr-2 img-trakus" width="15px" src="' + directory_uri + '/web/assets/images/trakus03.png" alt="trakus"> Últimos 200 mts.</span> ' + renderUlt200(inscripcion) + '' +
1030        '   </div>\n' +
1031        '   <div class="col-md-3 font-12 only-programa only-desktop" ' + nombreAntiguoStudStyle(rut_anterior, nombre, inscripcion.rut_stud) + '><span class="black">Stud</span> ' + inscripcion.nombre_stud + '<span>' + nombreAntiguoStud(rut_anterior, nombre, inscripcion.rut_stud) + '</span></div>\n' +
1032        '   <div class="col-md-3 font-12 only-programa only-movil">' +
1033        '           <div class="only-programa relative "><span class="black only-programa">Peso promedio FS </span>' + calcularPesoPromedio(inscripcion) + ' ' +
1034        '           </div>\n' +
1035        '   </div>\n' +
1036        '   <div class="col-md-3 font-12 only-programa only-desktop criador-cambio-' + inscripcion.rut_ejemplar + '"><span class="black">Criador</span> ' + inscripcion.nombre_haras + '</div>\n' +
1037        '   <div class="col-md-3 font-12 only-programa only-movil">' + _getNameRating(inscripcion) + '</div>\n' +
1038        '   <div class="col-md-3 font-12 only-programa"><span class="black">Días sin correr </span>' + calcularDiasSinCorrer(inscripcion, dataCarrera.fecha_carrera) + '</div>\n' +
1039
1040        '   <div class="col-md-3 font-12 only-programa only-desktop">' +
1041        '      <span class="black"><img class="my-auto mr-2 img-trakus" width="15px" src="' + directory_uri + '/web/assets/images/trakus03.png" alt="trakus"> Tipo Caballo.</span> ' + renderTipoCaballo(inscripcion) + '' +
1042        '   </div>\n' +
1043
1044        '   <div class="col-md-3 font-12 only-resultado only-movil"><div class="icons-ejemplar px-2 float-left filter-dark"></div></div>' +
1045        '   <div class="col-md-3 font-12 only-resultado" ' + nombreAntiguoStudStyle(rut_anterior, nombre, inscripcion.rut_stud) + '><span class="black pr-1">Stud  </span> ' + inscripcion.nombre_stud + '<span>' + nombreAntiguoStud(rut_anterior, nombre, inscripcion.rut_stud) + '</span></div>\n' +
1046        '   <div class="col-md-3 font-12 only-resultado">' +
1047        '          <span class="black mr-1">Distancia </span>' + inscripcion.distanciamiento + '</span>' +
1048        '   </div>\n' +
1049        '   <div class="col-md-3 font-12 only-resultado"></div>\n' +
1050        '   <div id="pronosticos-' + inscripcion.partidor + '" class=" col-md-3 only-resultado  px-2 float-md-right text-center p-1 pronosticos-resultados" style="margin-top: -30px;">' +
1051        '       <div class="m-auto pt-5 pt-md-0 text-center d-md-flex">\n' +
1052        '       <img title="Favorito" class="mr-3 mb-1 mb-md-0 invert icon-star-web ' + fav + '" src="' + directory_uri + '/web/assets/images/icons/star.svg" style="width: 18px;">' +
1053        '       <div class="position-pronosticos"><img src="' + directory_uri + '/web/assets/images/club/ariel.png"\n' +
1054        '           title="Ariel Gómez" alt=" Pronósticos Ariel Gómez" class="foto-cdg ariel">\n' +
1055        '       <img src="' + directory_uri + '/web/assets/images/club/felipe.png"\n' +
1056        '            title="Felipe Ogrodnik" alt=" Pronósticos Felipe Ogrodnik" class="foto-cdg felipe">\n' +
1057        '       <img src="' + directory_uri + '/web/assets/images/club/mario.png"\n' +
1058        '            title="Mario Valdés" alt=" Pronósticos Mario Valdés" class="foto-cdg mario"></div>\n' +
1059        '        </div>' +
1060        '   </div>\n' +
1061        '\n';
1062    return html;
1063}
1064
1065function renderTipoCaballo(inscripcion) {
1066
1067    if (inscripcion.perfil_fs) {
1068        if (inscripcion.perfil_fs.perfil_fs_t1 != null) {
1069            return inscripcion.perfil_fs.perfil_fs_t1;
1070        } else if (inscripcion.perfil_fs.perfil_fs_t2 != null) {
1071            return inscripcion.perfil_fs.perfil_fs_t2;
1072        } else {
1073            return 'S/Inf.'
1074        }
1075    } else {
1076        return 'S/Inf.'
1077    }
1078}
1079
1080function renderPrimero200(inscripcion) {
1081    if (inscripcion.perfil_fs) {
1082        if (inscripcion.perfil_fs.vel_1rtos_200_t1 != null) {
1083            return inscripcion.perfil_fs.vel_1rtos_200_t1.toFixed(2) + 'Km/h';
1084        } else {
1085            return 'S/Inf.'
1086        }
1087    } else {
1088        return 'S/Inf.'
1089    }
1090}
1091
1092function renderUlt200(inscripcion) {
1093    if (inscripcion.perfil_fs) {
1094        if (inscripcion.perfil_fs.vel_ult_200_t1 != null) {
1095            return inscripcion.perfil_fs.vel_ult_200_t1.toFixed(2) + 'Km/h';
1096        } else {
1097            return 'S/Inf.'
1098        }
1099    } else {
1100        return 'S/Inf.'
1101    }
1102}
1103
1104
1105function _renderInfoEjemplarComparador(inscripcion) {
1106    let distancia = dataPrograma.distancia;
1107    let tipo_pista = dataPrograma.numero_pista;
1108    let efiJin = calculoEficienciaJineteComparador(inscripcion.rut_ejemplar, distancia, tipo_pista) ?? 'S/inf';
1109    let html =
1110        '   <div class="col-md-6 font-12"><span class="black">Stud </span>' + inscripcion.nombre_stud + '</div>\n' +
1111        '   <div class="col-md-6 font-12"><span class="black">Jinete </span>' + inscripcion.nombre_jinete + '</div>\n' +
1112        '   <div class="col-md-6 font-12"><span class="black">Eficiencia Jinete </span><span class="eficiencia-jinete-' + inscripcion.rut_jinete + '"></span></div>' +
1113        '   <div class="col-md-6 font-12"><span class="black">Eficiencia Preparador </span>' + efiJin + '</div>' +
1114        '   <div class="col-md-6 font-12"><span class="black">GMax tipo de Cab. </span> - </div>\n' +
1115        '   <div class="col-md-6 font-12"><span class="black">Preparador </span>' + inscripcion.nombre_preparador + '</div>';
1116    return html;
1117}
1118
1119function calcularEfiJineteComparador(rut_jinete, distancia, tipo_pista) {
1120    var datajinete = dataEficienciaJinete;
1121    console.log(datajinete);
1122    if (datajinete) {
1123        var jinete = datajinete.find(d => d.rut == rut_jinete);
1124        var pista = tipo_pista == 1 ? 'p1' : 'p2';
1125        var dist = distancia > 1400 ? 'd2' : 'd1';
1126        var query = 'ef' + pista + dist;
1127        if (jinete) {
1128            var result = jinete[query] ? Math.round(jinete[query] * 10) / 10 + '%' : 'S/Inf';
1129            $('#eficiencia-jinete-comp-' + rut_jinete).html(result);
1130        } else {
1131            $('#eficiencia-jinete-comp-' + rut_jinete).html('S/Inf');
1132        }
1133    } else {
1134        $('#eficiencia-jinete-comp-' + rut_jinete).html('S/Inf');
1135    }
1136}
1137
1138function calcularEfiPreparadorComparador() {
1139    return '-';
1140}
1141
1142function nombreAntiguoStud(rut_anterior, nombre, rut_stud) {
1143    if (rut_anterior) {
1144        if (rut_anterior !== rut_stud) {
1145            return '<i class="fa fa-refresh mx-2" data-toggle="tooltip" data-placement="top" title="Cambio de propiedad, sale : ' + nombre + '" aria-hidden="true"></i> <span> ' + nombre + '</span>';
1146        } else {
1147            return '';
1148        }
1149    } else {
1150        return '';
1151    }
1152}
1153
1154function nombreAntiguoStudStyle(rut_anterior, nombre, rut_stud) {
1155    if (rut_anterior) {
1156        if (rut_anterior !== rut_stud) {
1157            return 'style="background-color: #d3d3d352; border-radius: 5px;"';
1158        } else {
1159            return '';
1160        }
1161    } else {
1162        return '';
1163    }
1164}
1165
1166
1167function isUrlExists(url, cb) {
1168    jQuery.ajax({
1169        url: url,
1170        type: "get",
1171        dataType: "html",
1172        cache: false,
1173        contentType: false,
1174        processData: false,
1175        complete: function (xhr) {
1176            if (typeof cb === 'function')
1177                cb.apply(this, [xhr.status]);
1178        }
1179    });
1180}
1181
1182function calcularDiasSinCorrer(inscripcion, fecha) {
1183    if (inscripcion.campanas_top.lenght) {
1184        return '-';
1185    }
1186    let hoy = moment(dataPrograma.fecha_reunion);
1187    if (inscripcion.campanas_top[0]) {
1188        let ultima = moment(inscripcion.campanas_top[0].fecha);
1189        let ahora = moment(fecha);
1190        return ahora.diff(ultima, 'days');
1191    } else {
1192        return '-';
1193    }
1194}
1195
1196function calcularUltimoIndiceGano(inscripcion) {
1197    if (!inscripcion.campanas_ganador.length) {
1198        return '-';
1199    } else {
1200        if (inscripcion.campanas_ganador[0].handicap == 0 || inscripcion.campanas_ganador[0].handicap == '0') {
1201            return 'Cd.';
1202        } else {
1203            return inscripcion.campanas_ganador[0].handicap;
1204        }
1205
1206    }
1207}
1208
1209function calcularPesoPromedio(inscripcion) {
1210    if (!inscripcion.campanas_top.length || !inscripcion.campanas_top) {
1211        return '-';
1212    } else {
1213        let cantidad = inscripcion.campanas_top.length;
1214        let pesos = 0;
1215        inscripcion.campanas_top.forEach(function (campana) {
1216            if (campana.peso_ejemplar) {
1217                pesos += campana.peso_ejemplar;
1218            } else {
1219                cantidad--;
1220            }
1221        });
1222        return Math.round(pesos / cantidad) + 'Kg';
1223    }
1224}
1225
1226function _renderCampanas(inscripcion) {
1227
1228    if (inscripcion.campanas_top) {
1229        return '<div class="row bg-white no-gutters border-top-gray" id="ultimas-presentaciones-' + inscripcion.rut_ejemplar + '" style="display: none;">\n' +
1230            '                    <div class="col-12">\n' +
1231            '     <table data-pagination="false" data-page-list="[10, 25, 50, 100, all]" data-mobile-responsive="true" class="b-table table table-borderless" >' +
1232            _renderHeadTablaUltimasPresentaciones() +
1233            _renderBodyTablaUltimasPresentaciones(inscripcion) +
1234            '     </table>' +
1235            '</div>\n' +
1236            '</div>';
1237    }
1238
1239    return '<div class="row bg-white no-gutters" id="ultimas-presentaciones-' + inscripcion.rut_ejemplar + '" style="display: none;">' +
1240        '<div class="col-12 text-center font-14 p-4">No registra presentaciones</div>' +
1241        '</div>';
1242}
1243
1244function _renderHeadTablaUltimasPresentaciones() {
1245    return '<thead>' +
1246        '    <tr style="background-color: #F4F4F4;">' +
1247        '        <th style="white-space: nowrap">' +
1248        '            FECHA RN' +
1249        '        </th>' +
1250        '        <th style="white-space: nowrap">' +
1251        '            PRESENTACIONES' +
1252        '        </th>' +
1253        '        <th style="white-space: nowrap">' +
1254        '            POSICIÓN' +
1255        '        </th>' +
1256        '        <th style="white-space: nowrap">' +
1257        '            PESO FS' +
1258        '        </th>' +
1259        '        <th style="white-space: nowrap">' +
1260        '            JINETE / PESO' +
1261        '        </th>' +
1262        '        <th style="white-space: nowrap">' +
1263        '            DISTANCIA' +
1264        '        </th>' +
1265        '        <th style="white-space: nowrap">' +
1266        '            GANADOR' +
1267        '        </th>' +
1268        '        <th style="white-space: nowrap">' +
1269        '            ÍNDICE' +
1270        '        </th>' +
1271        '        <th style="white-space: nowrap">' +
1272        '            DIVIDENDO' +
1273        '        </th>' +
1274        '        <th style="white-space: nowrap">' +
1275        '            TIEMPO' +
1276        '        </th>' +
1277        '        <th style="white-space: nowrap">' +
1278        '            VIDEO' +
1279        '        </th>' +
1280        '    </tr>' +
1281        '</thead>';
1282}
1283
1284function _renderBodyTablaUltimasPresentaciones(inscripcion) {
1285    html = '<tbody class="r-title-12">';
1286    var pista_route = get_site_url + '/carreras/wp-content/themes/chs/web/assets/images/pistas/';
1287    var fechas_ganadoras = [];
1288    var fecha_debut = null;
1289    if (inscripcion.campana_debutante.length) {
1290        let fecha_debut = moment(inscripcion.campana_debutante[0].fecha).valueOf() ?? null;
1291    }
1292    inscripcion.campanas_top.forEach(function (campana, key) {
1293        if (campana.resultado == 1) {
1294            if (fecha_debut == moment(campana.fecha).valueOf()) {
1295                html += htmlDatosTablaUltimasPresentaciones(campana, true, true);
1296                fechas_ganadoras.push(campana.fecha);
1297            } else {
1298                html += htmlDatosTablaUltimasPresentaciones(campana, true, false);
1299                fechas_ganadoras.push(campana.fecha);
1300            }
1301        } else {
1302            if (fecha_debut) {
1303                if (fecha_debut == moment(campana.fecha).valueOf()) {
1304                    campana_ganador ? campana.fecha_carrera == campana_ganador.fecha_carrera ? html += '' : html += htmlDatosTablaUltimasPresentaciones(campana, false, true) : html += htmlDatosTablaUltimasPresentaciones(campana, false, true);
1305                } else
1306                    campana_ganador ? campana.fecha_carrera == campana_ganador.fecha_carrera ? html += '' : html += htmlDatosTablaUltimasPresentaciones(campana) : html += htmlDatosTablaUltimasPresentaciones(campana);
1307            } else {
1308                campana_ganador ? campana.fecha_carrera == campana_ganador.fecha_carrera ? html += '' : html += htmlDatosTablaUltimasPresentaciones(campana) : html += htmlDatosTablaUltimasPresentaciones(campana);
1309            }
1310        }
1311    });
1312
1313    if (inscripcion.campanas_ganador.length && inscripcion.campanas_top.length) {
1314        var campana_ganador = inscripcion.campanas_ganador[0];
1315        let new_campana = $.inArray(campana_ganador.fecha, fechas_ganadoras) ? $.inArray(campana_ganador.fecha, fechas_ganadoras) : null;
1316        if (new_campana) {
1317            html += htmlDatosTablaUltimasPresentaciones(campana_ganador, true);
1318        }
1319
1320    }
1321    html += '</tbody>';
1322    return html;
1323}
1324
1325
1326function htmlDatosTablaUltimasPresentaciones(campana, ganador = false, debutante = false) {
1327    var elem = '';
1328    var video = '<td class="text-center font-20 disabled "><i class="fa fa-youtube-play 4x disabled-yt"></i></td>';
1329    let winnerColor = ganador ? 'bg-secondary text-white' : '';
1330    let winnerIcon = ganador ? '<i class="fa fa-trophy" title="Última vez que ganó"></i>' : '';
1331    if (campana.video_youtube.trim().length) {
1332        video = '<td class="text-center font-20 youtube-hover"><i class="fa fa-youtube-play 4x" onclick="showModalYoutube(\'' + campana.video_youtube + '\')"></i></td>'
1333    }
1334    let fs_link = get_site_url + '/perfil-fina-sangre/?fs_rut=' + campana.rut_ejemplar_ganador;
1335    let distancia = campana.distancia_2 ? campana.distancia_2 : '-';
1336    let fecha_rn = moment(campana.fecha);
1337    let n_carrera = campana.numero_carrera;
1338    let estado = resolveNull(campana.estado_pista, '');
1339    let url_data = campana.resultado != 1 ? '<a href="' + fs_link + '">' + resolveNull(campana.nombre_ejemplar_ganador, '-') + '</a>' : resolveNull(campana.nombre_ejemplar_ganador, '-');
1340    let deb_icon = debutante ? '<img title="Debutante" class="invert" src="' + directory_uri + '/web/assets/images/icons/debutante.svg" style="width: 14px; top: -2px; margin-right: 4px; position: relative;" alt="Debutante">' : '';
1341
1342    elem += '<tr class="table-div-striped-green ' + winnerColor + '">' +
1343        '        <td class="text-center font-12"> ' + deb_icon + '' + winnerIcon + '' + getUrlResultados(fecha_rn.format('YYYY-MM-DD'), n_carrera, campana.hipodromo.toLowerCase()) + '</td>' +
1344        '        <td class="text-left font-12 no-wrap" >' +
1345        '           <img class="pista-img mr-1" src="' + logos[campana.hipodromo.toLowerCase()] + '" rel="nofollow">' +
1346        estadoPista(estado, distancia) + ' / ' +
1347        '       ' + campana.sup_inf + ' / ' +
1348        '           <label class="mini-mandil mandil-' + campana.partidor + '">' + campana.partidor + '</label>  ' +
1349        '       </td>' +
1350        '        <td class="text-center font-12">' + campana.resultado + '</td>' +
1351        '        <td class="text-center font-12">' + campana.peso_ejemplar + ' Kg</td>' +
1352        '        <td class="text-center font-12">' + campana.nombre_jinete + ' / ' + campana.peso_jinete + ' Kg</td>' +
1353        '        <td class="text-center font-12">' + campana.distancia_1 + '</td>' +
1354        '        <td class="text-center font-12">' + url_data + '</td>' +
1355        '        <td class="text-center font-12">' + campana.handicap + '</td>' +
1356        '        <td class="text-center font-12">' + campana.dividendo + '</td>' +
1357        '        <td class="text-center font-12">' + campana.tiempo + '</td>' +
1358        '       ' + video +
1359        '</tr>';
1360
1361
1362    return elem;
1363
1364
1365}
1366
1367function getUrlResultados(fecha, carrera, hipodromo) {
1368    if (hipodromo == 'chs') {
1369        return '<a href="' + get_home_url_carreras + '/resultados/?fecha=' + fecha + '&carrera=' + carrera + '">' + fecha + '</a>';
1370    } else {
1371        return fecha;
1372    }
1373}
1374
1375
1376function estadoPista(estado, distancia) {
1377    if (estado) {
1378        if (estado == 'CN1') {
1379            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Nor.';
1380        } else if (estado == 'CE1') {
1381            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Elá.';
1382        } else if (estado == 'CL1') {
1383            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Bla.';
1384        } else if (estado == 'CR1') {
1385            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Reg.';
1386        } else if (estado == 'CP1') {
1387            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Pes.';
1388        } else if (estado == 'CB1') {
1389            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Bar.';
1390        } else if (estado == 'CN2') {
1391            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Nor.';
1392        } else if (estado == 'CR2') {
1393            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Reg.';
1394        } else if (estado == 'CB2') {
1395            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Bar.';
1396        } else if (estado == 'HN1') {
1397            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Nor.';
1398        } else if (estado == 'HR1') {
1399            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Reg.';
1400        } else if (estado == 'HB1') {
1401            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Bar.';
1402        } else if (estado == 'VN1') {
1403            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Nor.';
1404        } else if (estado == 'VN2') {
1405            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Nor.';
1406        } else if (estado == 'VL1') {
1407            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Bla.';
1408        } else if (estado == 'VL2') {
1409            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Bla.';
1410        } else if (estado == 'VR1') {
1411            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Reg.';
1412        } else if (estado == 'VR2') {
1413            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Reg.';
1414        } else if (estado == 'VB1') {
1415            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Bar.';
1416        } else if (estado == 'VB2') {
1417            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Bar.';
1418        } else if (estado == 'VE1') {
1419            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Elá.';
1420        } else if (estado == 'VE2') {
1421            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Elá.';
1422        } else if (estado == 'VP1') {
1423            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/p-' + distancia + '.svg"> Pes.';
1424        } else if (estado == 'VP2') {
1425            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Pes.';
1426        } else if (estado == 'MN1') {
1427            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Nor.';
1428        } else if (estado == 'MB1') {
1429            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Bar.';
1430        } else if (estado == 'MR1') {
1431            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Reg.';
1432        } else if (estado == 'ML1') {
1433            return '<img class="img-pista-mini" width="50px" src="' + directory_uri + '/web/assets/images/pistas-campanas/a-' + distancia + '.svg"> Bla.';
1434        } else {
1435            return 'S/inf.';
1436        }
1437    }
1438}
1439
1440function mainRenderJuegosEspeciales() {
1441    let data = dataApuestas;
1442    $('.tabla-juegos-especiales').html(_renderJuegosEspeciales(data));
1443
1444    $('.vales-table').bootstrapTable();
1445}
1446
1447function _renderJuegosEspeciales(data) {
1448    let html = '';
1449    if (data != null) {
1450        data.forEach(function (apuesta) {
1451            let vales_vendidos = null;
1452            if (apuesta.combinacion) {
1453                if (apuesta.vales_vendidos != null) {
1454                    vales_vendidos = apuesta.vales_vendidos;
1455                }
1456                html += '<tr role="row">' +
1457                    '<td class="font-12 pl-3">' + apuesta.abreviacion + '</td>' +
1458                    '<td class="font-12 text-center">' + apuesta.combinacion + '</td>' +
1459                    '<td class="font-12 text-center">' + new Intl.NumberFormat('de-DE').format(vales_vendidos, "--") + '</td>' +
1460                    '<td class="font-12 text-left px-3">$ <span class="right">' + new Intl.NumberFormat('de-DE').format(apuesta.valor) + '</span></td>' +
1461                    '</tr>';
1462            }
1463        });
1464        return html;
1465    }
1466}
1467
1468
1469function mainRenderDividendos(programa) {
1470    $('#tabla-dividendos').html(_renderTablaDividendos(programa));
1471}
1472
1473function _renderTablaDividendos(carrera) {
1474
1475    carrera.inscripciones_resultados.sort(function (a, b) {
1476        return a.posicion - b.posicion;
1477    });
1478
1479    let lista = [];
1480
1481    carrera.inscripciones_resultados.forEach(function (item) {
1482        if (item.posicion) {
1483            lista.push(item);
1484        }
1485    });
1486
1487    let ejemplar_n1 = lista[0];
1488    let ejemplar_n2 = lista[1];
1489    let ejemplar_n3 = lista[2];
1490
1491    console.log(lista);
1492    let content = '';
1493    try {
1494        if (carrera.dividendos_a_ganador) {
1495            content += '<div class="col-md col-6 text-center"><b class="d-block">GANADOR</b>' + carrera.dividendos_a_ganador + ' <label class="mini-mandil mandil-'+ ejemplar_n1.partidor + '">'+ ejemplar_n1.partidor + '</label></div>';
1496        }
1497
1498        if (carrera.dividendos_a_ganador_emp1 && !carrera.dividendos_a_ganador_emp2) {
1499
1500            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A GAN 1</b>' + carrera.dividendos_a_ganador_emp1 + ' <label class="mini-mandil mandil-'+ ejemplar_n2.partidor +'">'+ ejemplar_n2.partidor +'</label></div>';
1501
1502        } else if (carrera.dividendos_a_ganador_emp1 && carrera.dividendos_a_ganador_emp2) {
1503
1504            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A GAN 1</b>' + carrera.dividendos_a_ganador_emp1 + '<label class="mini-mandil mandil-' + ejemplar_n1.partidor + '">' + ejemplar_n1.partidor + '</label></div>';
1505            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A GAN 2</b>' + carrera.dividendos_a_ganador_emp2 + '<label class="mini-mandil mandil-' + ejemplar_n2.partidor + '">' + ejemplar_n2.partidor + '</label></div>';
1506            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A SEG 1</b>' + carrera.dividendos_place_1_lugar_emp1 + ' <label class="mini-mandil mandil-' + ejemplar_n3.partidor + '">' + ejemplar_n3.partidor + '</label></div>';
1507        }
1508
1509    } catch (e) {
1510        console.log(e.message);
1511
1512    }
1513    try {
1514        if (carrera.dividendos_place_1_lugar && carrera.dividendos_place_2_lugar) {
1515
1516            content += '<div class="col-md col-6 text-center"><b class="d-block">A SEG 1</b>' + carrera.dividendos_place_1_lugar + ' <label class="mini-mandil mandil-' + ejemplar_n1.partidor + '">' + ejemplar_n1.partidor + '</label></div>';
1517            content += '<div class="col-md col-6 text-center"><b class="d-block">A SEG 2</b>' + carrera.dividendos_place_2_lugar + ' <label class="mini-mandil mandil-' + ejemplar_n2.partidor + '">' + ejemplar_n2.partidor + '</label></div>';
1518        }
1519
1520        if (carrera.dividendos_place_1_lugar_emp1 && !carrera.dividendos_place_1_lugar_emp2) {
1521
1522            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A SEG 1</b>' + carrera.dividendos_place_1_lugar_emp1 + ' <label class="mini-mandil mandil-' + ejemplar_n3.partidor + '">' + ejemplar_n3.partidor + '</label></div>';
1523
1524        }else if (carrera.dividendos_place_2_lugar && carrera.dividendos_place_2_lugar_emp1) {
1525
1526            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A SEG 1</b>' + carrera.dividendos_place_2_lugar_emp1 + ' <label class="mini-mandil mandil-' + ejemplar_n3.partidor + '">' + ejemplar_n3.partidor + '</label></div>';
1527
1528        }else if (carrera.dividendos_place_1_lugar_emp1 && carrera.dividendos_place_1_lugar_emp2) {
1529
1530            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A SEG 1</b>' + carrera.dividendos_place_2_lugar_emp1 + ' <label class="mini-mandil mandil-' + ejemplar_n1.partidor + '">' + ejemplar_n1.partidor + '</label></div>';
1531            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A SEG 2</b>' + carrera.dividendos_place_2_lugar_emp2 + ' <label class="mini-mandil mandil-' + ejemplar_n2.partidor + '">' + ejemplar_n2.partidor + '</label></div>';
1532            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A TER 1</b>' + carrera.dividendos_atrcr_3_lugar_emp1 + ' <label class="mini-mandil mandil-' + ejemplar_n3.partidor + '">' + ejemplar_n3.partidor + '</label></div>';
1533        }
1534
1535    } catch (e) {
1536        console.log(e.message);
1537    }
1538
1539    try {
1540        if (carrera.dividendos_atercero_1_lugar && carrera.dividendos_atercero_2_lugar && carrera.dividendos_atercero_3_lugar) {
1541            content += '<div class="col-md col-6 text-center"><b class="d-block">A TER 1</b>' + carrera.dividendos_atercero_1_lugar + ' <label class="mini-mandil mandil-' + ejemplar_n1.partidor + '">' + ejemplar_n1.partidor + '</label></div>';
1542            content += '<div class="col-md col-6 text-center"><b class="d-block">A TER 2</b>' + carrera.dividendos_atercero_2_lugar + ' <label class="mini-mandil mandil-' + ejemplar_n2.partidor + '">' + ejemplar_n2.partidor + '</label></div>';
1543            content += '<div class="col-md col-6 text-center"><b class="d-block">A TER 3</b>' + carrera.dividendos_atercero_3_lugar + ' <label class="mini-mandil mandil-' + ejemplar_n3.partidor + '">' + ejemplar_n3.partidor + '</label></div>';
1544        }
1545
1546        if (carrera.dividendos_atrcr_3_lugar_emp1 && !carrera.dividendos_atrcr_3_lugar_emp2) {
1547
1548            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A TER 1</b>' + carrera.dividendos_atrcr_3_lugar_emp1 + ' <label class="mini-mandil mandil-' + ejemplar_n1.partidor + '">' + ejemplar_n1.partidor + '</label></div>';
1549
1550        } else if (carrera.dividendos_atrcr_3_lugar_emp1 && carrera.dividendos_atrcr_3_lugar_emp2) {
1551
1552            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A TER 1</b>' + carrera.dividendos_atrcr_3_lugar_emp1 + ' <label class="mini-mandil mandil-' + ejemplar_n1.partidor + '">' + ejemplar_n1.partidor + '</label></div>';
1553            content += '<div class="col-md col-6 text-center"><b class="d-block">EMP A TER 2</b>' + carrera.dividendos_atrcr_3_lugar_emp2 + ' <label class="mini-mandil mandil-' + ejemplar_n2.partidor + '">' + ejemplar_n2.partidor + '</label></div>';
1554
1555        }
1556
1557
1558    } catch (e) {
1559        console.log(e.message);
1560    }
1561    return content;
1562}
1563
1564function mainRenderVideo(data) {
1565    $('.video-carrera').html(_renderVerVideo(data.video));
1566    $('.video-carrera-frontal').html(_renderVerVideo(data.link_video_front));
1567}
1568
1569function _renderVerVideo(link_img) {
1570    let html = '';
1571    if (link_img != null) {
1572        let h = 300;
1573        html = '<iframe class="video-yt-res" width="100%" height="' + h + '" src="' +
1574            link_img + '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="">' +
1575            '</iframe>';
1576    }
1577    return html;
1578}
1579
1580
1581let xhr;
1582
1583function _renderFotoFinish() {
1584
1585    let fecha_clasico = dataPrograma.fecha_carrera;
1586    let retrospecto = dataPrograma.retrospecto;
1587
1588    if (xhr && xhr.status != 4) {
1589        xhr.abort();
1590    }
1591
1592    let fecha = moment(fecha_clasico).format('DD-MM-YYYY');
1593
1594    xhr = $.ajax({
1595        type: 'POST',
1596        url: adminAjax,
1597        data: {
1598            action: 'fotofinish',
1599            fecha: fecha,
1600            retrospecto: retrospecto,
1601        },
1602        success: function (msg) {
1603            let response = JSON.parse(msg);
1604            _renderFalloFotografico(response);
1605        },
1606        error: function (msg) {
1607        }
1608    });
1609}
1610
1611function _renderFalloFotografico(url) {
1612    let html = '';
1613    if (url != null) {
1614        $('#result-fotofinish').html('');
1615        $('#result-fotofinish').html('<img class="w-100 img-fluid pl-3" src="'+url.url+'">');
1616    }
1617}
1618
1619
1620function mainRenderApuestasDisponibles() {
1621    if (dataApuestas) {
1622        let box = $('#apuestas-' + dataApuestas[0].numero_carrera);
1623        let html = '';
1624        dataApuestas.forEach(function (apuesta) {
1625            if (apuesta.combinacion) {
1626                html += '     <div class="col-md-2 col-6 only-resultado">\n' +
1627                    '             <div style="line-height: 20px;">\n' +
1628                    apuesta.descripcion +
1629                    '             </div>\n' +
1630                    '        </div>';
1631                box.html(html);
1632            }
1633
1634            html += '     <div class="col-md-2 col-6 only-programa">\n' +
1635                '             <div style="line-height: 20px;">\n' +
1636                apuesta.descripcion +
1637                '             </div>\n' +
1638                '        </div>';
1639            box.html(html);
1640
1641        });
1642
1643    }
1644}
1645
1646function mainRenderPozos() {
1647
1648    if (dataPozos) {
1649
1650        dataPozos.forEach(function (pozos) {
1651
1652            let lista_pozos = '';
1653            let box = $('#pozos-carrera-' + pozos.numero_carrera);
1654
1655            if (pozos.megapick6 > 0) {
1656                html = '<div class="col-2">\n' +
1657                    '           <div style="line-height: 20px;">MEGAPICK6 <span class="bold">$' + new Intl.NumberFormat('de-DE').format(pozos.megapick6) + '</span></div>\n' +
1658                    '       </div>';
1659
1660                lista_pozos = lista_pozos + html;
1661            }
1662
1663            if (pozos.mpickclas > 0) {
1664                html = '<div class="col-md-2 col-6">\n' +
1665                    '       <div style="line-height: 20px;">MEGAPICK CLASICO <span class="bold">$' + new Intl.NumberFormat('de-DE').format(pozos.mpickclas) + '</span></div>\n' +
1666                    '   </div>';
1667                lista_pozos = lista_pozos + html;
1668            }
1669
1670            if (pozos.pollon > 0) {
1671                html = '<div class="col-md-2 col-6">\n' +
1672                    '       <div style="line-height: 20px;">POLLON <span class="bold">$' + new Intl.NumberFormat('de-DE').format(pozos.pollon) + '</span></div>\n' +
1673                    '   </div>';
1674                lista_pozos = lista_pozos + html;
1675            }
1676
1677            if (pozos.superfecta > 0 && pozos.superfecta) {
1678                if(pozos.numero_carrera == 20 || pozos.numero_carrera == 21){
1679                    html = '<div class="col-md-2 col-6">\n' +
1680                        ' <div style="line-height: 20px;"> SUPERFECTA DEL DESQUITE <span class="bold">$' + separadorDeMiles(pozos.superfecta) + '</span></div>\n' +
1681                        '</div>';
1682                    lista_pozos = lista_pozos + html;
1683                }else{
1684                    html = '<div class="col-md-2 col-6">\n' +
1685                        ' <div style="line-height: 20px;"> SUPERFECTA <span class="bold">$' + separadorDeMiles(pozos.superfecta) + '</span></div>\n' +
1686                        '</div>';
1687                    lista_pozos = lista_pozos + html;
1688                }
1689            }
1690
1691            if (pozos.pick4 > 0) {
1692                html = '<div class="col-md-2 col-6">\n' +
1693                    '       <div style="line-height: 20px;">PICK4 <span class="bold">$' + new Intl.NumberFormat('de-DE').format(pozos.pick4) + '</span></div>\n' +
1694                    '   </div>';
1695                lista_pozos = lista_pozos + html;
1696            }
1697
1698            if (pozos.trifecta > 0) {
1699                html = '<div class="col-md-2 col-6">\n' +
1700                    '        <div style="line-height: 20px;">TRIFECTA <span class="bold">$' + new Intl.NumberFormat('de-DE').format(pozos.trifecta) + '</span></div>\n' +
1701                    '   </div>';
1702                lista_pozos = lista_pozos + html;
1703            }
1704
1705            if (pozos.doblemil > 0 && pozos.doblemil) {
1706                if(pozos.numero_carrera == 20 || pozos.numero_carrera == 21){
1707                    html = '<div class="col-md-2 col-6">\n' +
1708                        ' <div style="line-height: 20px;">DOBLE DEL DESQUITE <span class="bold">$' + separadorDeMiles(pozos.doblemil) + '</span></div>\n' +
1709                        '</div>';
1710                    lista_pozos = lista_pozos + html;
1711                }else{
1712                    html = '<div class="col-md-2 col-6">\n' +
1713                        ' <div style="line-height: 20px;">DOBLE DE MIL <span class="bold">$' + separadorDeMiles(pozos.doblemil) + '</span></div>\n' +
1714                        '</div>';
1715                    lista_pozos = lista_pozos + html;
1716                }
1717            }
1718
1719            if (pozos.triple > 0) {
1720                html = '<div class="col-md-2 col-6">\n' +
1721                    '       <div style="line-height: 20px;">TRIPLE <span class="bold">$' + new Intl.NumberFormat('de-DE').format(pozos.triple) + '</span></div>\n' +
1722                    '   </div>';
1723                lista_pozos = lista_pozos + html;
1724            }
1725            box.html(lista_pozos);
1726        });
1727    }
1728
1729}
1730
1731function showCustomModal(modal_id) {
1732    $('body').addClass('overflow-hide');
1733    $('#' + modal_id).addClass('active ultra-faster');
1734    animateCSS('#' + modal_id, 'zoomIn');
1735}
1736
1737function closeCustomModal(modal_id) {
1738    $('#' + modal_id).removeClass('ultra-faster');
1739    animateCSS('#' + modal_id, 'bounceOutUp', function () {
1740        $('#' + modal_id).removeClass('active');
1741        $('body').removeClass('overflow-hide');
1742    });
1743}
1744
1745function animateCSS(element, animationName, callback) {
1746    const node = document.querySelector(element);
1747    node.classList.add('animated', animationName);
1748
1749    function handleAnimationEnd() {
1750        node.classList.remove('animated', animationName);
1751        node.removeEventListener('animationend', handleAnimationEnd);
1752        if (typeof callback === 'function') callback()
1753    }
1754
1755    node.addEventListener('animationend', handleAnimationEnd)
1756}
1757
1758$('.menu-comparador').click(function () {
1759
1760    if ($('#body-comparador').hasClass('show-options')) {
1761        $('#body-comparador').removeClass('show-options');
1762        $('.chevron-animate').removeClass('up');
1763    } else if ($('#body-comparador').hasClass('show-results')) {
1764        $('#body-comparador').removeClass('show-results');
1765        $('.chevron-animate').removeClass('up');
1766    } else {
1767        renderNameRaceComparador();
1768        renderSelectEjemplares()
1769        $('#body-comparador').addClass('show-options');
1770        $('.chevron-animate').addClass('up');
1771        $('#menu-options').slideDown('slow')
1772    }
1773})
1774
1775$("input:checkbox").click(function () {
1776    var bol = $("input:checkbox:checked").length >= limit;
1777    $("input:checkbox").not(":checked").attr("disabled", bol);
1778});
1779
1780
1781function renderNameRaceComparador() {
1782    let div = $('#name-race-comparador');
1783    let data = dataPrograma;
1784    let item = '<div class="font-18" style="margin-top: -5px">' + _g_renderNumeroCarreraComparador(data, data.resultados, false) + ' <span class="font-16 light text-capitalize">' + getNombreCarrera(data) + '</span></div>';
1785    div.html(item);
1786}
1787
1788
1789$('.return-compare').click(function () {
1790    $('#body-comparador').removeClass('show-results');
1791    $('#body-comparador').addClass('show-options');
1792    $('.chevron-animate').addClass('up');
1793    $('#menu-options').slideDown('slow')
1794    $('body').removeClass('overflow-hidden');
1795})
1796
1797function getComparadorData(rut, fecha, callSuccess) {
1798
1799    $.ajax({
1800        type: 'GET',
1801        url: serviceUrl + 'v2/programa/comparador/' + fecha + '/' + rut,
1802        success: function (msg) {
1803            callSuccess(msg)
1804            $('.b-table').bootstrapTable();
1805        },
1806        error: function (msg) {
1807        }
1808    });
1809
1810}
1811
1812function renderSelectEjemplares(data = null) {
1813    for (var i = 0; i < 4; i++) {
1814        if (data) {
1815            let lista = dataPrograma.inscripciones_resultados
1816            $('.contador_ejemplares_' + i).html('')
1817            let items = '<option value=""  selected>Seleccione</option>';
1818
1819            lista.forEach(function (item) {
1820                let selected = data[i] == item.rut_ejemplar ? 'selected' : '';
1821                items += '<option ' + selected + '  value="' + item.rut_ejemplar + '">[ ' + item.partidor + ' ] ' + item.nombre_ejemplar + '</option>';
1822            });
1823            $('.contador_ejemplares_' + i).html(items)
1824        } else {
1825            let lista = dataPrograma.inscripciones_resultados
1826            $('.contador_ejemplares_' + i).html('')
1827            let items = '<option value=""  selected>Seleccione</option>';
1828            lista.forEach(function (item) {
1829                items += '<option value="' + item.rut_ejemplar + '">[ ' + item.partidor + ' ] ' + item.nombre_ejemplar + '</option>'
1830            });
1831            $('.contador_ejemplares_' + i).html(items)
1832        }
1833    }
1834}
1835
1836function addToCompare(rut) {
1837    const found = dataComparador.find(element => element == rut);
1838
1839    console.log('found', found);
1840    if (findArray(dataComparador, rut)) {
1841
1842
1843        $('#ico_compare_' + rut).html('<span class="font-14 text-primary m-auto">-</span>');
1844        $('#text_compare_' + rut).html('<span class="black ml-1">Quitar</span>');
1845        k++;
1846        dataComparador.push(rut)
1847        if (dataComparador.length > 1) {
1848            $('#body-comparador').addClass('show-options');
1849            $('.chevron-animate').addClass('up');
1850            $('#menu-options').slideDown('slow')
1851            $('body').removeClass('overflow-hidden');
1852        }
1853    } else {
1854        k--;
1855
1856        $('#ico_compare_' + rut).html('<span class="font-14 text-primary m-auto">+</span>');
1857        $('#text_compare_' + rut).html('<span class="black ml-1">Comparador</span>');
1858        dataComparador = removeItemOnce(dataComparador, rut);
1859
1860        if (dataComparador.length > 1) {
1861            $('#body-comparador').addClass('show-options');
1862            $('.chevron-animate').addClass('up');
1863            $('#menu-options').slideDown('slow')
1864            $('body').removeClass('overflow-hidden');
1865        }
1866    }
1867
1868    renderSelectEjemplares(dataComparador)
1869}
1870
1871function removeItemOnce(arr, value) {
1872    var index = arr.indexOf(value);
1873    if (index > -1) {
1874        arr.splice(index, 1);
1875    }
1876    return arr;
1877}
1878
1879
1880function findArray(arr, value) {
1881    var data = true
1882    var index = arr.indexOf(value);
1883    if (index > -1) {
1884        data = false;
1885    }
1886    return data;
1887}
1888
1889
1890function comparar() {
1891
1892    let height = $(window).height();
1893    if (height <= 660) {
1894        $('#list_positions').addClass('list_positions_min')
1895    } else {
1896        $('#list_positions').removeClass('list_positions_min')
1897    }
1898
1899    $('#list_positions').html('');
1900    let ejemplar_1 = $('.comp1').val();
1901    let ejemplar_2 = $('.comp2').val();
1902    let ejemplar_3 = $('.comp3').val();
1903    let ejemplar_4 = $('.comp4').val();
1904    if (ejemplar_1) {
1905        renderComparador(ejemplar_1, setComparador1)
1906    }
1907    if (ejemplar_2) {
1908        renderComparador(ejemplar_2, setComparador2)
1909    }
1910    if (ejemplar_3) {
1911        renderComparador(ejemplar_3, setComparador3)
1912    }
1913    if (ejemplar_4) {
1914        renderComparador(ejemplar_4, setComparador4)
1915    }
1916    setTimeout(
1917        function () {
1918            $('#menu-options').slideUp('slow')
1919            $('#body-comparador').removeClass('show-options');
1920            $('#body-comparador').addClass('show-results');
1921        }, 300);
1922
1923}
1924
1925$('.btn-comparar').click(function () {
1926
1927    $('[class*=contador_ejemplares_]').each(function (i, e) {
1928        $(e).val() ? k++ : '';
1929    });
1930
1931    if ($("input:checkbox:checked").length && k >= 2) {
1932        comparar();
1933    } else {
1934        if ($("input:checkbox:checked").length == 0) {
1935            Swal.fire({
1936                icon: 'warning',
1937                text: 'Seleccione los datos a comparar',
1938            })
1939        }
1940
1941        if (k <= 2) {
1942            Swal.fire({
1943                icon: 'warning',
1944                text: 'Seleccione 2 ejemplares a lo menos',
1945            })
1946        }
1947
1948        if (k <= 2 || $("input:checkbox:checked").length == 0) {
1949            Swal.fire({
1950                icon: 'warning',
1951                text: 'Se necesita 2 ejemplares mínimo y seleccionar los datos a comparar',
1952            })
1953        }
1954    }
1955})
1956
1957
1958function renderComparador(rut, callback) {
1959    let data_fecha = fecha;
1960    getComparadorData(rut, data_fecha, callback);
1961}
1962
1963function setComparador1(data) {
1964    comparador1 = data;
1965    $('#list_positions').append(_renderDataComparador(data));
1966    $('.b-table').bootstrapTable();
1967}
1968
1969function setComparador2(data) {
1970    comparador2 = data;
1971    $('#list_positions').append(_renderDataComparador(data));
1972    $('.b-table').bootstrapTable();
1973
1974}
1975
1976function setComparador3(data) {
1977    comparador3 = data;
1978    $('#list_positions').append(_renderDataComparador(data));
1979    $('.b-table').bootstrapTable();
1980}
1981
1982function setComparador4(data) {
1983    comparador4 = data;
1984    $('#list_positions').append(_renderDataComparador(data));
1985    $('.b-table').bootstrapTable();
1986}
1987
1988
1989function _renderDataComparador(info) {
1990    let data = info[0];
1991    $('body').addClass('overflow-hidden');
1992    let dataProg = dataPrograma;
1993    if (data) {
1994
1995        let fs_url = get_site_url + '/perfil-fina-sangre/?fs_rut=' + data.rut_ejemplar;
1996        let sexo = resolveNull(data.sexo, '-');
1997        let color = resolveNull(data.color, '-');
1998        let fecha_nacimiento = resolveNull(data.fecha_nacimiento, '-');
1999
2000        let tipo = sexo + ',' + color + ',' + (fecha_nacimiento ? calcularEdadFS(fecha_nacimiento, dataProg.fecha_carrera) : fecha_nacimiento);
2001
2002        let chaquetilla = directory_uri + '/web/assets/images/no-stud.png';
2003        if (data.rut_stud) {
2004            chaquetilla = 'https://static.clubhipico.cl/chaquetillas/' + data.rut_stud + '.jpg';
2005        }
2006
2007        return '<div class="col-md-6 mt-3 px-1"><div class=" bloque-programa"><div class="row no-gutters p-2 ">\n' +
2008            '                    <div class="col-auto d-flex ">\n' +
2009            '                        <div class="row no-gutters">\n' +
2010            '                            <div class="col-auto pr-2 only-resultado">\n' +
2011            '                                <div class="full-position">\n' +
2012            '                                    \n' +
2013            '                                </div>\n' +
2014            '                            </div>\n' +
2015            '                            <div class="col-auto pr-2">\n' +
2016            '                                <div class="full-mandil mandil-' + data.partidor + '">\n' +
2017            '                                   ' + data.partidor + '\n' +
2018            '                                </div>\n' +
2019            '                            </div>\n' +
2020            '                            <div class="col-auto pr-2 d-flex">\n' +
2021            '                                <div class="bg-white p-3 d-flex img-border-radius">\n' +
2022            '                                    <img height="45" class="m-auto" src="' + chaquetilla + '">\n' +
2023            '                                </div>\n' +
2024            '                            </div>\n' +
2025            '                        </div>\n' +
2026            '                    </div>\n' +
2027            '                    <div class="col-12 col-md p-2">\n' +
2028            '                        <div class="row">\n' +
2029            '                            <div class="col-12">\n' +
2030            '                                <div class="ejemplar-name text-uppercase relative">\n' +
2031            '                                    <a style="position: relative" href="' + fs_url + '" class="text-darkk black" title="Ver perfil de ' + capitalizar(data.nombre) + '">' + data.nombre_ejemplar + '<span class="text-lowercase normal"> (' + tipo.toLowerCase() + ')' + '</span>' +
2032            '</a>\n' +
2033            '                                    <label class="font-12">' + data.nombre_padre + '<span class="text-lowercase"> y </span> ' + data.nombre_madre + '<span class="text-lowercase"> por </span> ' + data.nombre_abuelo_materno + '</label>' + calcularReajuste(data.indice_inscrito, data.reajuste_indice, data.rut_ejemplar, data.ajuste_indice) + '\n' +
2034            '                                </div>\n' +
2035            '                            </div>\n' +
2036            '                        </div>\n' +
2037            '                        <div class="row"><div class="col-md-11"><div class="row">\n' +
2038            _renderInfoEjemplarComparador(data) +
2039            '                        </div>\n' +
2040            '                        </div>\n' +
2041            '                        </div>\n' +
2042            '                    </div>\n' +
2043            '                </div>' +
2044            _renderTablaComparador(data) +
2045            '</div></div>';
2046    }
2047
2048    function _renderTablaComparador(data) {
2049
2050        if (data.presentaciones_anteriores) {
2051            return '<div class="row bg-white no-gutters border-top-gray" id="ultimas-presentaciones-' + data.rut_ejemplar + '" >\n' +
2052                '                    <div class="col-12">\n' +
2053                '     <table data-pagination="false" data-page-list="[10, 25, 50, 100, all]" data-mobile-responsive="true" class="b-table table table-borderless" >' +
2054                _renderHeadTablaComparador() +
2055                _renderBodyTablaComparador(data) +
2056                '     </table>' +
2057                '</div>\n' +
2058                '</div>';
2059        }
2060
2061        return '<div class="row bg-white no-gutters" id="ultimas-presentaciones-' + inscripcion.rut_ejemplar + '" style="display: none;">' +
2062            '<div class="col-12 text-center font-14 p-4">No registra presentaciones</div>' +
2063            '</div>';
2064
2065    }
2066
2067    function _renderHeadTablaComparador() {
2068
2069        let _dividendo = $('#comp_dividendo').is(':checked') ? '' : 'd-none';
2070        let _distancia = $('#comp_distancia').is(':checked') ? '' : 'd-none';
2071        let _comp_peso_jinete = $('#comp_peso_jinete').is(':checked') ? '' : 'd-none';
2072        let _comp_efi_jinete = $('#comp_efi_jinete').is(':checked') ? '' : 'd-none';
2073        let _comp_trakus_vel_max = $('#comp_trakus_vel_max').is(':checked') ? '' : 'd-none';
2074        let _comp_jinete_c_anterior = $('#comp_jinete_c_anterior').is(':checked') ? '' : 'd-none';
2075        let _comp_trakus_ult_200 = $('#comp_trakus_ult_200').is(':checked') ? '' : 'd-none';
2076        let _comp_inidice = $('#comp_inidice').is(':checked') ? '' : 'd-none';
2077        let _comp_peso_fisico = $('#comp_peso_fisico').is(':checked') ? '' : 'd-none';
2078        let _comp_tren_carr = $('#comp_tren_carr').is(':checked') ? '' : 'd-none';
2079
2080        return '<thead>' +
2081            '    <tr style="background-color: #F4F4F4;">' +
2082            '        <th style="white-space: nowrap">' +
2083            '            Fecha RN' +
2084            '        </th>' +
2085            '        <th style="white-space: nowrap">' +
2086            '            Presentaciones' +
2087            '        </th>' +
2088            '        <th style="white-space: nowrap">' +
2089            '            Posición' +
2090            '        </th>' +
2091            '        <th class="c-distancia ' + _distancia + '" style="white-space: nowrap;">' +
2092            '            Dis.' +
2093            '        </th>' +
2094            '        <th class="c-dividendo ' + _dividendo + '" style="white-space: nowrap;">' +
2095            '            Div.' +
2096            '        </th>' +
2097            '        <th class="c-indice ' + _comp_inidice + '" style="white-space: nowrap;">' +
2098            '            Índice' +
2099            '        </th>' +
2100            '        <th class="c-peso-jinete ' + _comp_peso_jinete + '" style="max-width: 95px;">' +
2101            '            P. Jin' +
2102            '        </th>' +
2103            '        <th class="c-jinete-anterior ' + _comp_jinete_c_anterior + '" style="max-width: 95px;">' +
2104            '            Jin. (ant.)' +
2105            '        </th>' +
2106            '        <th class="c-peso-fisico ' + _comp_peso_fisico + '" style="max-width: 95px;">' +
2107            '            P. Fís.' +
2108            '        </th>' +
2109            '        <th class="c-ef-jinete ' + _comp_efi_jinete + '" style="max-width: 95px;">' +
2110            '            Ef.Jin.' +
2111            '        </th>' +
2112            '        <th class="c-tren-carrera ' + _comp_tren_carr + '" style="max-width: 95px;" >' +
2113            '            T. Caballo' +
2114            '        </th>' +
2115            '        <th class="c-ult-200 ' + _comp_trakus_ult_200 + '" style="max-width: 95px;" >' +
2116            '            T. Últ.u200' +
2117            '        </th>' +
2118            '        <th class="c-vel-max ' + _comp_trakus_vel_max + '" style="max-width: 95px;">' +
2119            '            GMax Pri.200' +
2120            '        </th>' +
2121            '    </tr>' +
2122            '</thead>';
2123    }
2124
2125    function _renderBodyTablaComparador(inscripcion) {
2126        html = '<tbody class="r-title-12">';
2127        var pista_route = 'https://beta.clubhipico.cl/carreras/wp-content/themes/chs/web/assets/images/pistas/';
2128
2129        inscripcion.presentaciones_anteriores.forEach(function (item) {
2130
2131            html += htmlDatosTablaComparador(item, inscripcion.rut_ejemplar);
2132        })
2133
2134        html += '</tbody>';
2135        return html;
2136        $('.b-table').bootstrapTable();
2137    }
2138
2139    function htmlDatosTablaComparador(campana, rut_ejemplar) {
2140        var html = '';
2141        let distancia = campana.distancia_2 ? campana.distancia_2 : '-';
2142        let fecha_rn = moment(campana.fecha);
2143        let n_carrera = campana.numero_carrera;
2144        let estado = resolveNull(campana.estado_pista, '');
2145
2146        let _dividendo = $('#comp_dividendo').is(':checked') ? '' : 'd-none';
2147        let _distancia = $('#comp_distancia').is(':checked') ? '' : 'd-none';
2148        let _comp_peso_jinete = $('#comp_peso_jinete').is(':checked') ? '' : 'd-none';
2149        let _comp_efi_jinete = $('#comp_efi_jinete').is(':checked') ? '' : 'd-none';
2150        let _comp_trakus_vel_max = $('#comp_trakus_vel_max').is(':checked') ? '' : 'd-none';
2151        let _comp_jinete_c_anterior = $('#comp_jinete_c_anterior').is(':checked') ? '' : 'd-none';
2152        let _comp_trakus_ult_200 = $('#comp_trakus_ult_200').is(':checked') ? '' : 'd-none';
2153        let _comp_inidice = $('#comp_inidice').is(':checked') ? '' : 'd-none';
2154        let _comp_peso_fisico = $('#comp_peso_fisico').is(':checked') ? '' : 'd-none';
2155        let _comp_tren_carr = $('#comp_tren_carr').is(':checked') ? '' : 'd-none';
2156        let pesoAnterior = campana.peso_jinete_2 ? campana.peso_jinete_2 : '-';
2157        let trakusVelMax = campana.perfil_fs ? campana.perfil_fs.vel_1rtos_200_t1 ? campana.perfil_fs.vel_1rtos_200_t1 : campana.perfil_fs.vel_1rtos_200_t2 : '-';
2158        let trakusult200 = campana.perfil_fs ? campana.perfil_fs.vel_ult_200_t1 ? campana.perfil_fs.vel_ult_200_t1 + 'Km/h' : '-' : '-';
2159        let trakusTren = campana.perfil_fs ? campana.perfil_fs.perfil_fs_t1 ? campana.perfil_fs.perfil_fs_t1 : '-' : '-';
2160        var efi_jin = 'S/inf.'
2161        if (campana.numero_pista == 1) {
2162            if (campana.eficienta_jinete[0]) {
2163                if (campana.distancia_2 < 1400) {
2164                    efi_jin = campana.eficienta_jinete[0].efp1d1;
2165                } else {
2166                    efi_jin = campana.eficienta_jinete[0].efp1d2;
2167                }
2168            }
2169        } else {
2170            if (campana.eficienta_jinete[0]) {
2171                if (campana.distancia_2 < 1400) {
2172                    efi_jin = campana.eficienta_jinete[0].efp2d1;
2173                } else {
2174                    efi_jin = campana.eficienta_jinete[0].efp2d2;
2175                }
2176            }
2177        }
2178        html += '<tr class="table-div-striped-green">' +
2179            '        <td class="text-center font-12  no-wrap"> ' + getUrlResultados(fecha_rn.format('YYYY-MM-DD'), n_carrera, campana.hipodromo.toLowerCase()) + '</td>' +
2180
2181            '        <td class="text-left font-12 no-wrap" >' +
2182            '           <img class="pista-img mr-1" src="' + logos[campana.hipodromo.toLowerCase()] + '" rel="nofollow">' + estadoPista(estado, distancia) + ' / ' +
2183            '       ' + campana.sup_inf + ' / ' +
2184            '           <label class="mini-mandil mandil-' + campana.partidor + '">' + campana.partidor + '</label>  ' +
2185            '       </td>' +
2186            '        <td class="text-center font-12">' + campana.resultado + '</td>' +
2187            '        <td class="text-center font-12 c-distancia ' + _distancia + '">' + campana.distancia_1 + '</td>' +
2188            '        <td class="text-center font-12 c-dividendo ' + _dividendo + '">' + campana.dividendo + '</td>' +
2189            '        <td class="text-center font-12 c-indice ' + _comp_inidice + '"> ' + campana.handicap + ' </td>' +
2190            '        <td class="text-center font-12 c-peso-jinete ' + _comp_peso_jinete + '">' + campana.peso_jinete + 'Kg </td>' +
2191            '        <td class="text-center font-12 c-jinete-anterior ' + _comp_jinete_c_anterior + '"> ' + pesoAnterior + ' </td>' +
2192            '        <td class="text-center font-12 c-peso-fisico ' + _comp_peso_fisico + '">' + campana.peso_caballo + 'Kg</td>' +
2193            '        <td class="text-center font-12 c-ef-jinete ' + _comp_efi_jinete + '"> ' + efi_jin + ' </td>' +
2194            '        <td class="text-center font-12 c-tren-carrera ' + _comp_tren_carr + '">' + trakusTren + ' </td>' +
2195            '        <td class="text-center font-12 c-ult-200 ' + _comp_trakus_ult_200 + '"> ' + trakusult200 + ' </td>' +
2196            '        <td class="text-center font-12 c-vel-max ' + _comp_trakus_vel_max + '"> ' + trakusVelMax + ' </td>' +
2197            '</tr>';
2198
2199        return html;
2200
2201    }
2202
2203}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.