PageSourceSearch

https://static.clubhipico.cl/web/services/home.js

js clubhipico.cl collected 2026-09-24 09:49:05 UTC 26,188 bytes, 704 lines download raw bytes

1let dataProgramaCarrerasWidget = null;
2let logos = {
3    'chs': directory_uri + '/assets/images/hipodromos/chs.png',
4    'hch': directory_uri + '/assets/images/hipodromos/hch.jpg',
5    'vsc': directory_uri + '/assets/images/hipodromos/vsc.jpg',
6    'chc': directory_uri + '/assets/images/hipodromos/chc.png',
7};
8
9$('#modalYoutube').on('hidden.bs.modal', function (e) {
10    $('#modalYoutube .body-render').html('');
11});
12
13function showModalYoutube(link) {
14    $('#modalYoutube').modal('show');
15    if (link) {
16        $('#modalYoutube .body-render').html('');
17        $('#modalYoutube .body-render').html('<iframe width="100%" height="450"\n' +
18            '      src="' + link + '"\n' +
19            '      frameborder="0"\n' +
20            '      allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"\n' +
21            '      allowfullscreen></iframe>');
22    } else {
23        $('#modalYoutube .body-render').html('<div class="text-white h-100 d-flex"><h1 class="m-auto font-20">CONTENDO NO DISPONIBLE</h1></div>');
24    }
25}
26
27String.prototype.capitalize = function () {
28    this.toLowerCase();
29    return this.replace(/(^|\s)([a-z])/g, function (m, p1, p2) {
30        return p1 + p2.toUpperCase();
31    });
32};
33
34function capitalizar(str) {
35    if (str){
36        str = str.toLowerCase();
37        return str.replace(/(^|\s)([a-z])/g, function (m, p1, p2) {
38            return p1 + p2.toUpperCase();
39        });
40    }else{
41        return '';
42    }
43};
44
45$(document).on('click', '.smooth-scroll', function (event) {
46    event.preventDefault();
47    $('html, body').animate({
48        scrollTop: $($.attr(this, 'href')).offset().top
49    }, 500);
50});
51
52
53function getUrlPista(distancia, pista) {
54    if (pista == '1' || pista == 'pasto' || pista == 'p') {
55        return directory_uri + 'assets/img/pistas/pista_' + distancia + '_p.svg';
56    } else {
57        return directory_uri + 'assets/img/pistas/pista_' + distancia + '_a.svg';
58    }
59}
60
61function showBoxPosicionWidget(data, showUrl = false) {
62
63    let fechaCarrera = data.fecha_carrera;
64    let horaCarrera = data.hora_carrera;
65    let position = data.numero_carrera;
66    let currentTime = dateFns.format(new Date());
67    let carreraTime = dateFns.format(new Date(fechaCarrera + ' ' + horaCarrera));
68
69    let corrida = 'corrida';
70    let icon = 'fa fa-bell text-white';
71
72
73    let time = 'Corrida ' + moment(moment(horaCarrera, 'HHmmss')).format('HH:mm') + 'Hrs.';
74
75    if (data.resultados == 'false' || data.resultados == false) {
76        corrida = '';
77        if (currentTime < carreraTime) {
78            icon = 'fa fa-clock-o';
79            time = moment(moment(horaCarrera, 'HHmmss')).format('HH:mm') + 'Hrs.';
80        }
81    }
82
83    let url = _urlBySection('programa-resultados') + '?fecha=' + fechaCarrera + '&carrera=' + position;
84
85    console.log('anulada -> ' + fechaCarrera == '2023-06-30')
86    
87    if(fechaCarrera == '2023-06-30' && position == 15){
88        corrida = 'anulada';
89        icon = 'fas fa fa-circle-exclamation text-white';
90        time = 'Anulada'
91    }
92
93    if(fechaCarrera == '2024-04-05' && position == 17){
94        corrida = 'anulada';
95        icon = 'fas fa fa-circle-exclamation text-white';
96        time = 'Anulada'
97    }
98
99    if(fechaCarrera == '2024-06-14'){
100        corrida = 'anulada';
101        icon = 'fas fa fa-circle-exclamation text-white';
102        time = 'Suspendida'
103        url = '#'
104    }
105
106    // General: cualquier carrera anulada/suspendida (ESTADO_SERIE 3/4/5/6)
107    if (typeof _esCarreraSuspendida === 'function' && typeof _mapaEstadoSerie !== 'undefined'
108        && _esCarreraSuspendida(_mapaEstadoSerie[position])) {
109        corrida = 'anulada';
110        icon = 'fa fa-exclamation-circle text-danger';
111        time = '<span class="text-danger">Suspendida</span>';
112        url = '#';
113    }
114
115    let html = '<div class="box-carreras-full ' + corrida + '">' +
116        '<div class="number-box-carrera">' +
117        '<span class="font-40 extra-bold">' + position + '</span><span class="extra-bold position-grade text-white">a</span>' +
118        '</div>' +
119        '<span class="carrera-status"><b><i class="' + icon + '"></i> ' + time + '</b></span>' +
120        ' </div>';
121    if (showUrl) {
122        return '<a href="' + url + '">' + html + '</a>';
123    }
124    return html;
125}
126
127    function calcularEdadFS(fecha_nac, fecha_carr = null,edad_carr) {
128        var currentDate = fecha_carr ? moment(fecha_carr, 'YYYY-MM-DD') : moment(new Date());
129
130        var startTime = currentDate;
131        var rules = moment(new Date()).set({'month' : 6, 'date' : 1 });
132        var endTime = moment(fecha_nac, 'YYYY-01-01').set({'month' : 12, 'date' : 1 });
133        var duration = moment.duration(moment(startTime).diff(endTime));
134
135        console.log('current : ', currentDate.format('YYYY-MM-DD'));
136        console.log('rules : ', rules.format('YYYY-MM-DD'));
137        console.log('Validación : ', currentDate > rules);
138
139
140        if(currentDate.valueOf() > rules.valueOf()){
141            console.log('FECHA DE NACIMIENTO : ',endTime);
142            console.log('ANTES DE AGREGAR : ',duration);
143            console.log('EDAD ANTES : ' ,duration.asYears());
144            if(currentDate > rules){
145                duration.add(1,'y');
146            }
147            console.log('DESPUES DE AGREGAR : ',duration);
148            console.log('EDAD DESPUES : ' ,duration.asYears());
149        }
150        var years = duration.asYears();
151        console.log('======================');
152        if(edad_carr){
153            return edad_carr;
154        }else{
155            return Math.floor(years);
156        }
157    }
158
159function getSexoEjemplar(sexo) {
160
161    if (sexo == 'H') {
162        return 'Hembra';
163    } else if (sexo == 'M') {
164        return 'Macho';
165    } else if (sexo == 'Y') {
166        return 'Yegua';
167    } else if (sexo == 'P') {
168        return 'Potro';
169    } else if (sexo == 'C') {
170        return 'Castrado';
171    } else {
172        return '';
173    }
174}
175
176function getColorEjemplar(color) {
177    if (color == 'A') {
178        return 'Alazán';
179    } else if (color == 'M') {
180        return 'Mulato';
181    } else if (color == 'C') {
182        return 'Colorado';
183    } else if (color == 'R') {
184        return 'Rosadillo';
185    } else if (color == 'T') {
186        return 'Tordillo';
187    } else if (color == 'N') {
188        return 'Negro';
189    } else {
190        return 'SIN REGISTRO';
191    }
192
193}
194
195function condicionGanador(tipo,sexo) {
196    let letra;
197
198    if (sexo) {
199        if (sexo == 'H') {
200            letra = 'a';
201        } else if (sexo == 'M') {
202            letra = 'e';
203        } else {
204            letra = 'e';
205        }
206    } else {
207        letra = 'e';
208    }
209
210    if (tipo) {
211        if (tipo == 'P' || tipo == 'O') {
212            return 'No Ganador'+letra+'s';
213        }
214        if (tipo == 'B') {
215            return 'Ganador'+letra+'s de 1 Carrera';
216        }
217        if (tipo == 'A') {
218            return 'Ganador'+letra+'s de 1, 2 y 3 Carreras';
219        }
220        if (tipo == 'C') {
221            return 'Ganador'+letra+'s de 1 y 2 Carreras';
222        }
223    } else {
224        return 'SIN REGISTRO';
225    }
226}
227
228function sexoEjemplar(elem) {
229    if (elem) {
230        if (elem == 'H') {
231            return 'Hembras';
232        } else if (elem == 'M') {
233            return 'Machos';
234        } else {
235            return 'Machos y Hembras';
236        }
237    } else {
238        return '';
239    }
240}
241
242function edadEjemplar(elem) {
243    if (elem == '3+') {
244        return ' 3 años y más';
245    } else {
246        return ' de ' + elem + ' años';
247    }
248}
249
250function getNombreCarreraPreincripcion(data) {
251    if (data.nombre_carrera == 'Handicap' && data.indice_superior || data.indice_inferior) {
252        return fullname = 'HANDICAP índice ' + data.indice_superior + ' al ' + data.indice_inferior;
253    }else if(data.nombre_carrera == 'Condicional'){
254        return fullname = 'Condicional' + ' para ' + sexoEjemplar(data.sexo) + ' ' + edadEjemplar(data.edad) + ' ' + condicionGanador(data.condicion_ganador,data.sexo);
255    }else{
256        if (data.sexo){
257            return fullname = data.nombre_carrera + ' para ' + sexoEjemplar(data.sexo);
258        }else if(data.edad){
259            return fullname = data.nombre_carrera + ' para ' + edadEjemplar(data.edad) + ' ' + condicionGanador(data.condicion_ganador,data.sexo);
260        }
260else if(data.condicion_ganador){
261            return fullname = data.nombre_carrera + ' para '  + condicionGanador(data.condicion_ganador,data.sexo);
262        }
263    }
264}
265
266
267function getNombreCarrera(data, type = null) {
268    var fullname = '';
269
270    if (!type) {
271        if (data.tipo_carrera) {
272            var type = data.nombre_carrera;
273            if (type == 'Handicap') {
274                return fullname = 'HANDICAP índice ' + data.indice_superior + ' al ' + data.indice_inferior;
275            }
276            if (type == 'Condicional') {
277                return fullname = type + ' para ' + sexoEjemplar(data.sexo) + ' ' + edadEjemplar(data.edad) + ' ' + condicionGanador(data.condicion_ganador,data.sexo);
278            } else {
279                return fullname = type + ' ( '+sexoEjemplar(data.sexo)+' ' + edadEjemplar(data.edad) + ' )';
280            }
281        }else{
282            if (data.indice_superior || data.indice_inferior) {
283                return fullname = 'HANDICAP índice ' + data.indice_superior + ' al ' + data.indice_inferior;
284            }else{
285                return fullname = 'Condicional' + ' para ' + sexoEjemplar(data.sexo) + ' ' + edadEjemplar(data.edad) + ' ' + condicionGanador(data.condicion_ganador,data.sexo);
286            }
287
288        }
289
290    } else {
291        if (data.tipo_carrera) {
292            let type = data.tipo_carrera.nombreCarrera;
293            let fullname;
294            if (type == 'Handicap') {
295                fullname = 'HANDICAP índice ' + data.indice_superior + ' al ' + data.indice_inferior;
296            }
297            if (type == 'Condicional') {
298
299                fullname = type + ' para ' + sexoEjemplar(data.evento.sexo) + ' ' + edadEjemplar(data.evento.edad) + ' ' + condicionGanador(data.evento.condicion_ganador,data.sexo);
300            } else {
301                fullname = type + edadEjemplar(data.evento.edad);
302            }
303
304            $(this).append(fullname);
305        }
306    }
307}
308
309function getNombreCarreraPrograma(data, type = null) {
310    var fullname = '';
311    if (!type) {
312        if (data.tipo_carrera != null) {
313            var type = data.nombre_carrera;
314            if (type == 'Handicap') {
315                return fullname = 'HANDICAP índice ' + data.indice_superior + ' al ' + data.indice_inferior;
316            }
317            if (type == 'Condicional') {
318                return fullname = type + ' para ' + sexoEjemplar(data.sexo) + ' ' + edadEjemplar(data.edad) + ' ' + condicionGanador(data.condicion_ganador,data.sexo);
319            } else {
320                return fullname = type + ' ( '+sexoEjemplar(data.sexo)+' ' + edadEjemplar(data.edad) + ' )';
321            }
322        }else{
323            if (data.indice_superior || data.indice_inferior) {
324                return fullname = 'HANDICAP índice ' + data.indice_superior + ' al ' + data.indice_inferior;
325            }else{
326                return fullname = 'Condicional' + ' para ' + sexoEjemplar(data.sexo) + ' ' + edadEjemplar(data.edad) + ' ' + condicionGanador(data.condicion_ganador,data.sexo);
327            }
328        }
329
330    } else {
331        if (data.tipo_carrera != null) {
332            var type = data.nombre_carrera;
333
334            if (type == 'Handicap') {
335                return fullname = 'HANDICAP índice ' + data.indice_superior + ' al ' + data.indice_inferior;
336            }
337
338            if (type == 'Condicional') {
339                return fullname = type + ' para ' + sexoEjemplar(data.evento.sexo) + ' ' + edadEjemplar(data.evento.edad) + ' ' + condicionGanador(data.evento.condicion_ganador,data.sexo);
340            } else {
341                return fullname = type + ' (' + edadEjemplar(data.evento.edad) + ' )';
342            }
343        }else{
344            if (data.indice_superior || data.indice_inferior) {
345                return fullname = 'HANDICAP índice ' + data.indice_superior + ' al ' + data.indice_inferior;
346            }else{
347                return fullname = 'Condicional' + ' para ' + sexoEjemplar(data.sexo) + ' ' + edadEjemplar(data.edad) + ' ' + condicionGanador(data.condicion_ganador,data.sexo);
348            }
349        }
350    }
351}
352
353function getNombreCarreraWidget(data, type = null) {
354    var fullname = '';
355    if (!type) {
356        var type = data.nombre_carrera;
357        if (type == 'Handicap') {
358            if ( data.indice_superior) {
359                return fullname = 'HANDICAP índice ' + data.indice_superior + ' al ' + data.indice_inferior;
360            }else{
361                return fullname = 'HANDICAP índice : "pendiente" ';
362            }
363        }
364        if (type == 'Condicional') {
365            return fullname = type + ' para ' + sexoEjemplar(data.sexo) + ' ' + edadEjemplar(data.edad) + ' ' + condicionGanador(data.condicion_ganad
365or,data.sexo);
366        } else {
367            return fullname = type + ' (' + edadEjemplar(data.edad) + ' )';
368        }
369    } else {
370        if (data.tipo_carrera) {
371            let type = data.nombreCarrera;
372            let fullname;
373            if (type == 'Handicap') {
374            }
375            if (type == 'Condicional') {
376                fullname = type + ' para ' + sexoEjemplar(data.sexo) + ' ' + edadEjemplar(data.edad) + ' ' + condicionGanador(data.condicion_ganador,data.sexo);
377            } else {
378                fullname = type + edadEjemplar(data.edad);
379            }
380            $(this).append(fullname);
381        }
382    }
383}
384
385function colorMandil(mandil) {
386    var mandiles = [
387        {'id': '1', 'background': '#FF0000', 'color': '#FFFFFF'},
388        {'id': '2', 'background': '#FFFFFF', 'color': '#000000'},
389        {'id': '3', 'background': '#2373BA', 'color': '#FFFFFF'},
390        {'id': '4', 'background': '#FFFF00', 'color': '#000000'},
391        {'id': '5', 'background': '#339900', 'color': '#FFFFFF'},
392        {'id': '6', 'background': '#000000', 'color': '#FFFFFF'},
393        {'id': '7', 'background': '#FF9900', 'color': '#FFFFFF'},
394        {'id': '8', 'background': '#FFCCFF', 'color': '#FFFFFF'},
395        {'id': '9', 'background': '#66FFFF', 'color': '#FFFFFF'},
396        {'id': '10', 'background': '#700264', 'color': '#FFFFFF'},
397        {'id': '11', 'background': '#AFAEAE', 'color': '#FFFFFF'},
398        {'id': '12', 'background': '#44CA01', 'color': '#FFFFFF'},
399        {'id': '13', 'background': '#990033', 'color': '#FFFFFF'},
400        {'id': '14', 'background': '#660000', 'color': '#FFFFFF'},
401        {'id': '15', 'background': '#C9AA6C', 'color': '#FFFFFF'},
402        {'id': '16', 'background': '#c90014', 'color': '#FFFFFF'},
403        {'id': '17', 'background': '#3f22c9', 'color': '#FFFFFF'},
404        {'id': '18', 'background': '#c9a340', 'color': '#FFFFFF'}
405    ];
406
407    if (mandil) {
408        return mandiles.find(x => x.id == mandil);
409    } else {
410        return {'id': '100', 'background': '#fff', 'color': '#fff'}
411    }
412
413}
414
415function dataCalendar(year = null) {
416    let dateSelected = year ? new Date(year, 0, 1) : new Date();
417    let calendario = sessionStorage.getItem('calendario') || false;
418    if (!calendario) {
419        let urlData = serviceUrl + 'calendarios/' + dateSelected.getFullYear();
420        $.ajax({
421            type: 'GET',
422            url: urlData,
423            success: function (data) {
424                sessionStorage.setItem('calendario', JSON.stringify(data));
425                runCalendar(dateSelected);
426            },
427            error: function (err) {
428            }
429        });
430    }
431}
432
433// function runCalendar(dateSelected) {
434//
435//     let dates = JSON.parse(sessionStorage.getItem('calendario'));
436//     let data = [];
437//     dates.forEach(function (elem) {
438//         list = {
439//             date: elem.fecha_reunion,
440//             value: {
441//                 fecha: elem.fecha_reunion,
442//                 disponible: elem.carreras,
443//                 fecha_reunion: elem.fecha_reunion
444//             }
445//         };
446//         data.push(list);
447//     });
448//     $('#calendar-principal').calendar({
449//         width: 320,
450//         height: 320,
451//         startWeek: 1,
452//         data: data,
453//         date: dateSelected,
454//         onSelected: function (view, date, data) {
455//             $('[id^=data-calendar-month-]').removeClass('month-active');
456//             $('#data-calendar-month-' + getMonthName(date).name).addClass('month-active');
457//             if (data) {
458//                 if (data.disponible) {
459//                     let url = get_site_url.replace('/carreras', '');
460//                     window.location.href = url + '/carreras/resumen-jornada/?fecha=' + data.fecha;
461//                 }
462//             }
463//         }
464//     });
465//     $('#calendar-year-carreras').html(dateSelected.getFullYear());
466// }
467
468// function prevYear() {
469//
470//     var year = $('#calendar-year-carreras').data('calendar-year-carreras');
471//     year -= 1;
472// }
473//
474//
475// function nextYear() {
476//     var year = $('#calendar-year-carreras').data('calendar-year-carreras');
477//     year += 1;
478//     $('#calendar-year-carreras').data('calendar-year-carreras', year);
479//     $('#calendar-year-carreras').html(year);
480// }
481
482
483function getMonthName(date) {
484
485    let months = [
486        {'id': '01', 'name': 'Ene'},
487        {'id': '02', 'name': 'Feb'},
488        {'id': '03', 'name': 'Mar'},
489        {'id': '04', 'name': 'Abr'},
490        {'id': '05', 'name': 'May'},
491        {'id': '06', 'name': 'Jun'},
492        {'id': '07', 'name': 'Jul'},
493        {'id': '08', 'name': 'Ago'},
494        {'id': '09', 'name': 'Sep'},
495        {'id': '10', 'name': 'Oct'},
496        {'id': '11', 'name': 'Nov'},
497        {'id': '12', 'name': 'Dic'},
498    ]
499
500    let months_search = moment(date).format('MM');
501    return months.find(x => x.id == months_search);
502}
503
504function getTimerVars(endHour, date, number) {
505    var currentDate = moment(new Date());
506    var startTime = currentDate;
507    var endTime = moment(endHour, 'HHmmss');
508    var duration = moment.duration(moment(endTime).diff(startTime));
509    var hours = duration.asMinutes();
510    var data = [];
511    data['time'] = ' <span class="bold"> ' + moment(endTime).format('HH:mm') + ' Hrs</span>\n';
512    data['icon'] = '<i class="icono-status-carrera fa fa-clock-o"></i>\n';
513    data['number'] = number;
514    fecha_actual = currentDate.format('YYYY-MM-DD');
515    let box = '';
516    if (date.replace("'", "").replace("'", "") >= fecha_actual) {
517        if (startTime >= endTime) {
518            next_race = 0;
519            if (hours.toFixed() <= 59 && hours.toFixed() > 0) {
520                data['time'] = 'Comienza en <span class="bold timer" data-timer="' + hours.toFixed() + '"></span>\n';
521                if (next_race == 0) {
522                    data['icon'] = '<i class="icono-status-carrera fa fa-bell-o"></i>\n';
523                }
524            }
525        }
526    } else {
527        data['time'] = '<b> Corrida</b>\n';
528        data['icon'] = '<img class="icono-status-carrera" src="' + directory_uri + '/assets/images/icons/medal-white.svg" width="12px">\n';
529    }
530    return data;
531}
532
533function resolveNull(value, replace = '0') {
534    if (value != null || value != null) {
535        return value
536    }
537    return replace;
538}
539
540function contarResultadosBusqueda(data) {
541
542    let contadorGlobal = 0;
543    let contadorEjemplares = 0;
544    let contadorPremios = 0;
545    let contadorWordpress = 0;
546
547    data[0].busqueda_ejemplares ? contadorEjemplares = data[0].busqueda_ejemplares.length : '';
548    data[0].busqueda_premios ? contadorPremios = data[0].busqueda_premios.length : '';
549    data[0].busqueda_wordpress ? contadorWordpress = data[0].busqueda_wordpress.length : '';
550
551    contadorGlobal = contadorEjemplares + contadorPremios + contadorWordpress;
552
553    $('#numero-query').html(contadorGlobal);
554    $('#cantidad-ejemplares').html(contadorEjemplares);
555    $('#cantidad-chs').html(contadorWordpress);
556    $('#cantidad-premios').html(contadorPremios);
557}
558
559function menuDetalleCarreraWidget(carrera, suspendida = false) {
560
561    let bloque = '';
562    let link = '';
563    if (carrera.video) {
564        link = "'" + carrera.video + "'";
565    }
566    if (carrera.resultados) {
567
568        bloque = ' <li class="nav-item">' +
569            '<a class="nav-link px-3 px-md-2" href="' + get_site_url + '/carreras/programa-y-resultados/?fecha=' + carrera.fecha_carrera + '&carrera=' + carrera.numero_carrera + '">' +
570            '<i class="fa fa-file mr-1" aria-hidden="true"></i> Programa' +
571            '</a>' +
572            '</li>' +
573            '<li class="nav-item" onclick="">' +
574            '<a class="nav-link px-3 px-md-2" href="javascript:void(0)" onclick="redirectResultadosHome(\'' + carrera.fecha_carrera + '\',\'' + carrera.numero_carrera + '\')">' +
575            '<i class="fa fa-flag mr-1" aria-hidden="true"></i>' +
576            'Resultados' +
577            '</a>' +
578            '</li>' +
579            '<li class="nav-item">' +
580            '<a class="nav-link px-3 px-md-2" href="javascript:void(0);" onclick="showModalYoutube(' + link + ')">' +
581            '<i class="fa fa-youtube-play mr-1" aria-hidden="true"></i>' +
582            'Video' +
583            '</a>' +
584            '</li>';
585
586    } else if(suspendida) {
587
588        bloque = '<li class="nav-item">' +
589            '<a class="nav-link px-3 px-md-2" href="' + get_site_url + '/carreras/programa-y-resultados/?fecha=' + carrera.fecha_carrera + '&carrera=' + carrera.numero_carrera + '">' +
590            '<i class="fa fa-file mr-1" aria-hidden="true"></i> Programa' +
591            '</a>' +
592            '</li>' +
593            '<li class="nav-item d-flex align-items-center">' +
594            '<span class="nav-link px-3 px-md-2 text-danger" style="font-weight:700;">
594' +
595            '<i class="fa fa-exclamation-circle mr-1" aria-hidden="true"></i> Suspendida' +
596            '</span>' +
597            '</li>';
598    }else{
599
600        bloque = '<li class="nav-item">' +
601            '<a class="nav-link px-3 px-md-2 " href="' + get_home_url + '/carreras/programa-y-resultados/?fecha=' + carrera.fecha_carrera + '&carrera=' + carrera.numero_carrera + '">' +
602            '<i class="fa fa-file mr-1" aria-hidden="true"></i> Programa' +
603            '</a>' +
604            '</li>' +
605            '<li class="nav-item">' +
606            '<a class="nav-link px-3 px-md-2 disabled" href="#">' +
607            '<i class="fa fa-flag mr-1" aria-hidden="true"></i>' +
608            'Resultados' +
609            '</a>' +
610            '</li>' +
611            '<li class="nav-item disabled">' +
612            '<a class="nav-link px-3 px-md-2 disabled">' +
613            '<i class="fa fa-youtube-play mr-1" aria-hidden="true"></i>' +
614            'Video' +
615            '</a>' +
616            '</li>';
617    
618    }
619
620    return bloque;
621}
622
623
624function _mainRenderApuestasDisponibles() {
625
626    if (dataApuestasEnPrograma) {
627
628        dataApuestasEnPrograma.forEach(function (apuesta) {
629
630            let box = $('#apuestas-' + apuesta.numero_carrera);
631            let html = '';
632
633            apuesta.apuestas.forEach(function (elem) {
634                html += '<div class="col-md-2 col-6">\n' +
635                    ' <div style="line-height: 20px;">\n' +
636                    elem.juego.descripcion +
637                    ' </div>\n' +
638                    ' </div>';
639            });
640
641            box.html(html);
642        });
643
644    }
645}
646
647function setDataProgramaCarrerasWidget(response) {
648    dataProgramaCarrerasWidget = response;
649    // Cargar estado_serie (para marcar suspendidas) antes de renderizar el widget.
650    var _fW = (response && response[0]) ? response[0].fecha_carrera : '';
651    if (_fW && typeof _cargarEstadoSerieCarreras === 'function'
652        && typeof _estadoSerieFecha !== 'undefined' && _estadoSerieFecha !== _fW) {
653        _cargarEstadoSerieCarreras(_fW, function () { _renderProgramasWidget(); });
654        return;
655    }
656    _renderProgramasWidget();
657}
658
659function _renderProgramasWidget() {
660    let render = '';
661    dataProgramaCarrerasWidget.forEach(function (data) {
662
663        let fechaCarrera = data.fecha_carrera;
664        let horaCarrera = data.hora_carrera;
665        let position = data.numero_carrera;
666        let suspendida = false;
667        if(fechaCarrera == '2024-06-14'){
668            suspendida = true;
669        }
670        if (typeof _esCarreraSuspendida === 'function' && typeof _mapaEstadoSerie !== 'undefined'
671            && _esCarreraSuspendida(_mapaEstadoSerie[data.numero_carrera])) {
672            suspendida = true;
673        }
674
675        let menu = menuDetalleCarreraWidget(data,suspendida);
676        render+= ' <div class="col-12">\n' +
677            '         <div class="row mb-2">\n' +
678            '             <div class="col-lg-4 col-md-2 col-3">'+showBoxPosicionWidget(data, true)+'</div>\n' +
679            '             <div class="col-lg-8 col-md-10 col-sm-9 col-9">\n' +
680            '                 <div class="row">\n' +
681            '                     <div class="title-next-races">\n' +
682            '                         <div class="extra-bold title font-12 mb-2 pr-1 text-lowercase">'+ (getNombreCarreraWidget(data)) +'</div>\n' +
683            '                         <div class="thin mt-1 font-11">Premio:</div>\n' +
684            '                         <div class="thin font-11">Pr. ' + data.nombre_premio + '</div>\n' +
685            '                     </div>\n' +
686            '                     <div class="datos-programa mr-lg-0 mr-md-5 mb-1 ml-4">\n' +
687            '                         <ul class="nav font-11 nav-next-races" style="padding-left: 8px;">'+ menu + '</ul>\n' +
688            '                     </div>\n' +
689            '                     <div class="next-race-icon">\n' +
690            '                         <img src="'+getUrlPista(data.distancia, data.numero_pista)+'"\n' +
691            '                              alt="" width="120px" height="50px">\n' +
692            '                     </div>\n' +
693            '                 </div>\n' +
694            '             </div>\n' +
695            '         </div>\n' +
696            '     </div>\n' +
697            '     <div class="separador">\n' +
698            '         <hr class="text-black" style="border-color:#588C56;">\n' +
699            '     </div>';
700    });
701
702    $('#widget_carrera').html(render);
703}
704

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.