﻿// Inicialización jQuery
$(document).ready(function(){
    generico.inicializa();
});

// Inicialización ASP .NET
if (typeof Sys != "undefined") {
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(function() {
        generico.inicializa()
    });
}

// Libreria "generico"
var generico = {
    // Inicialización de la funcionalidad en la página
    inicializa: function()
    {
        // Se copia el atributo alt en el title de las imágenes
        $("img").each(function(){ 
            var img = $(this);
            if (img.attr("alt") && !img.attr("title"))
                img.attr("title", img.attr("alt"));
        });
        
        // Alternador de Clase CSS
        $(".alternaClase").each(function(){
            var e = $(this);
            if (!e.data("activado_alternaClase")){
                function alternaTexto(){
                    var alternador = $(this);
                    var on = $(alternador.attr("data-target")).hasClass(alternador.attr("data-class"));
                    alternador.html(alternador.attr(on ? "data-on" : "data-off"));
                }

                e.data("activado_alternaClase",true);
                e.click(function(){
                    var alternador = $(this);
                    $(alternador.attr("data-target")).toggleClass(alternador.attr("data-class"));
                    alternaTexto.apply(this);
                });
                alternaTexto.apply(e);
            }
        });

        // Contador de caracteres de campos de texto
        $("textarea.autocontador")
            .filter(function(){ return !$(this).data("activado_autocontador"); })
            .data("activado_autocontador",true)
            .each(function(){
                var e = $(this);
                e.charCounter(e.attr("data-maximo"), {format: "Quedan %1 caracteres"});
            });
        
        // Limitador de tamaño de las opciones de los <select>
        $("select[data-limiteTexto]")
            .filter(function(){ return !$(this).data("activado_limiteTexto"); })
            .data("activado_limiteTexto",true)
            .each(function() {
              var select = $(this);
              var limite = select.attr("data-limiteTexto");
              $("option", select).each(function(){
                  var opt = $(this);
                  var texto = opt.text();
                  if (texto.length > limite) {
                    opt.attr("title", texto);
                    opt.text(texto.substring(0, limite) + "...");
                  }
              });
            });
    }
}


