/* Error de minimización. Devolviendo el contenido no minimizado.
(1,10): run-time error CSS1031: Expected selector, found 'controllerGenericAction('
(1,10): run-time error CSS1025: Expected comma or open brace, found 'controllerGenericAction('
(200,10): run-time error CSS1031: Expected selector, found 'hideSidenavPanel('
(200,10): run-time error CSS1025: Expected comma or open brace, found 'hideSidenavPanel('
 */
function controllerGenericAction(type, url, data, dataType, controlContent, showLoading, hideLoading, functionOnSucess) {

    $.ajax({
        beforeSend: function () {
            if (showLoading == true)
                $("#ajaxLoadingPanel").show();
        },
        complete: function () {
            if (hideLoading == true)
                setTimeout(function () {
                    $("#ajaxLoadingPanel").hide();
                }, 200);
        },
        type: type,
        contentType: "application/json; charset=utf-8",
        url: url,
        data: data,
        dataType: dataType,
        success: function (response, textStatus, jqXHR) {
            if (controlContent != "")
                $("#" + controlContent).html(response);

            if (controlContent == "workspace")
                updateScrollBarWorkSpace();

            if (typeof functionOnSucess == 'function')
                functionOnSucess(response);
        },
        error: function (xhr, status, error) {
            if (error.toString() == "")
                error = xhr.statusText;
            console.error(error);
        }
    });
};

/*
function IsIEBrowser() {
    var ua = window.navigator.userAgent;

    var msie = ua.indexOf('MSIE ');
    if (msie > 0) {
        // IE 10 or older => return version number
        return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
    }

    var trident = ua.indexOf('Trident/');
    if (trident > 0) {
        // IE 11 => return version number
        var rv = ua.indexOf('rv:');
        return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
    }

    var edge = ua.indexOf('Edge/');
    if (edge > 0) {
        // Edge (IE 12+) => return version number
        return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
    }

    // other browser
    return false;
};



$.fn.mrTimeLine = function (options) {
    var control = this;
    var defaults = {
        data: [],
        animation: 'pulse',
        isAdd: false,
        onClickItem: null,
        onDownload: null
    };


    this.options = $.extend({}, defaults, options);
    var htmlData = '';
    control.empty();
    var headHtml = '<div class="frst-timeline-block frst-odd-item" data-animation="' + this.options.animation + '"><div class="frst-timeline-img">';
    var headHtmlPar = '<div class="frst-timeline-block frst-even-item" data-animation="' + this.options.animation + '"><div class="frst-timeline-img">';
    var headHtml02 = '</div><div class="frst-timeline-content"><div class="frst-timeline-content-inner">';

    var footerHTML = '</div></div></div>';
    var i = 1;
    var animation = this.options.animation;
    var onDownload = this.options.onDownload;

    this.options.data.forEach(function (item) {
        htmlData = '';
        switch (item.type) {
            case 0:
                htmlData = htmlData.concat('<div class="frst-timeline-block frst-timeline-label-block" data-animation="' + animation + '">',
                    '<div class="frst-labels frst-start-label"><span>', item.titulo, '</span></div></div>')
                break;
            case 1:
                htmlData = htmlData.concat(i % 2 ? headHtmlPar : headHtml, '<span class="ev-state-', item.idCondicion, '">', item.condiLetra,'</span>', headHtml02,
                     onDownload == null ? '' : '<div class="btnDownloadTL" id="' + item.idFoto + '">DESCARGAR</div>',
                    '<div class="media-section">',
                    '<img src="', item.url, '" alt="Frst Responsive Timeline">', 
                    '</div>',
                    '<h2>', item.titulo, '</h2>',
                    '<span class="frst-date">', item.fecha, '</span>',
                    '<p>', item.contenido, '</p>',
                    footerHTML);
                break;
            case 2:
                htmlData = htmlData.concat(i % 2 ? headHtmlPar : headHtml, '<span class="ev-state-', item.idCondicion, '">', item.condiLetra,'</span>', headHtml02,
                    '<div class="media-section">',
                    '<iframe width="560" height="315" src="', item.url, '" frameborder="0" allowfullscreen></iframe>',
                    '</div>',
                    '<h2>', item.titulo, '</h2>',
                    '<span class="frst-date">', item.fecha, '</span>',
                    '<p>', item.contenido, '</p>',
                    footerHTML);
                break;
            case 3:
                htmlData = htmlData.concat(i % 2 ? headHtmlPar : headHtml, '<span class="ev-state-', item.idCondicion, '">', item.condiLetra,'</span>', headHtml02,
                    '<span class="frst-date">', item.fecha, '</span>',
                    '<p style="color:#000;">', item.contenido, '</p>');
                if (typeof item.fotos != "undefined") {
                    item.fotos.forEach(function (foto) {
                        debugger;
                        htmlData = htmlData.concat(onDownload == null ? '' : '<div class="btnDownloadTL" id="' + foto.idFoto + '">DESCARGAR</div>','<div class="media-section">',
                            '<img src="', foto.url, '" alt="Frst Responsive Timeline">', 
                            '<p style="color:#000;text-aling:ceter;">', foto.contenido, '</p>', '</div>');
                    });
                }
                htmlData = htmlData.concat(footerHTML);
                break;
        }
        i++;
        control.append(htmlData);

    });
    control.find('.btnDownloadTL').one('click', onclickTL);

    function onclickTL() {
        onDownload(this.getAttribute('id'));
    }


    return this;
};

function GenerateTimeLine(content) {
    var t = $;

    $(content).find(".frst-timeline-content").css("position", "relative");
    var defaultAnimation = $(content).find(".frst-container").attr("data-animation-name");
    function n(n, i) {
        n.each(function () {
            var n = t(this).data("animation") || defaultAnimation;
            $(this).find(".frst-timeline-content").addClass("is-hidden").removeClass("animated " + n)
        })
    }

    function i(n, i) {

        n.each(function () {

            var elemTop = $(this).offset().top;
            var docViewBottom = $(content).height();
            if ((elemTop > 0) && (elemTop < docViewBottom)) {
                var n = t(this).data("animation") || defaultAnimation;
                t(this).find(".frst-timeline-content").removeClass("is-hidden").addClass("animated " + n)
            }
        })
    }

    function e(n, i) {
        var e = 0;
        n.each(function () {

            var elem = t(this);
            var elemTop = $(this).offset().top;
            var docViewBottom = $(content).height() - $(this).height();
            if ((elemTop >= 0) && (elemTop < docViewBottom)) {
                setTimeout(function () {

                    var n = elem.data("animation") || defaultAnimation;
                    elem.find(".frst-timeline-content").removeClass("is-hidden").addClass("animated " + n);
                }, e)
                e += 200;
            }
        })
    }
    var a = t(content).find(".frst-timeline-block"),
        s = .8;

    n(a, s), i(a, s), t(content).on("scroll", function () {
        content.requestAnimationFrame ? content.requestAnimationFrame(function () {
            i(a, s)
        }) : setTimeout(function () {
            i(a, s)
        }, 100)
    }), t(".frst-date").length && t(".check-style").show()
};*/

function hideSidenavPanel() {
    $('[data-sidenav]').removeClass('show');
    $('body').removeClass('sidenav-no-scroll');
    $('[data-sidenav-overlay]').fadeOut('fast');
};

/*
function BloquearComboBoxSelect2(id) {

    $($('#' + id).select2("container")).addClass("loadComboBox");
    $('#' + id).prop("disabled", true);
    //$('#' + id).addClass("loadComboBox");
    //document.getElementById(id).disabled = true;
};

function DesbloquearComboBoxSelect2(id) {
    $($('#' + id).select2("container")).removeClass("loadComboBox");
    $("#" + id).prop("disabled", false);
    //$('#' + id).removeClass("loadComboBox");
    //document.getElementById(id).disabled = false;
};

function SetDataComboBox(idcontrol, vardata, varvalue, vartext, firstelemnt) {

    if (typeof vardata === 'undefined' || vardata == null) {
        $("#" + idcontrol).empty();
        return;
    }

    var select = $('#' + idcontrol);

    $('option', select).remove();

    if (firstelemnt != null) {
        var option = new Option(firstelemnt, '');
        select.append($(option));
    }

    $.each(vardata, function (i, item) {
        option = new Option(item[vartext], item[varvalue]);
        select.append($(option));
    });
};
*/
