%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/tjamichg/intranet.tjamich.gob.mx/intranet/common/vendors/responsive-tabs/
Upload File :
Create Path :
Current File : /home/tjamichg/intranet.tjamich.gob.mx/intranet/common/vendors/responsive-tabs/responsive-tabs.js

var fakewaffle = (function ($, fakewaffle) {
    "use strict";

    fakewaffle.responsiveTabs = function (collapseDisplayed) {

        fakewaffle.currentPosition = 'tabs';

        var tabGroups = $('.nav-tabs.responsive'),
            hidden = '',
            visible = '';

        if (collapseDisplayed === undefined) {
            collapseDisplayed = ['xs', 'sm'];
        }

        $.each(collapseDisplayed, function () {
            hidden += ' hidden-' + this;
            visible += ' visible-' + this;
        });

        $.each(tabGroups, function () {
            var $tabGroup = $(this),
                tabs = $tabGroup.find('li a'),
                collapseDiv = $("<div></div>", {
                    "class": "panel-group responsive" + visible,
                    "id": 'collapse-' + $tabGroup.attr('id')
                });

            $.each(tabs, function () {
                var $this = $(this),
                    active = '',
                    oldLinkClass = $this.attr('class') === undefined ? '' : $this.attr('class'),
                    newLinkClass = 'accordion-toggle',
                    oldParentClass = $this.parent().attr('class') === undefined ? '' : $this.parent().attr('class'),
                    newParentClass = 'panel panel-default';

                if (oldLinkClass.length > 0) {
                    newLinkClass += ' ' + oldLinkClass;
                }
                ;

                if (oldParentClass.length > 0) {
                    oldParentClass = oldParentClass.replace(/\bactive\b/g, '');
                    newParentClass += ' ' + oldParentClass;
                    newParentClass = newParentClass.replace(/\s{2,}/g, ' ');
                    newParentClass = newParentClass.replace(/^\s+|\s+$/g, '');
                }
                ;

                if ($this.parent().hasClass('active')) {
                    active = ' in';
                }

                collapseDiv.append(
                    $('<div>').attr('class', newParentClass).html(
                        $('<div>').attr('class', 'panel-heading').html(
                            $('<h4>').attr('class', 'panel-title').html(
                                $('<a>', {
                                    'class': newLinkClass,
                                    'data-toggle': 'collapse',
                                    'data-parent': '#collapse-' + $tabGroup.attr('id'),
                                    'href': '#collapse-' + $this.attr('href').replace(/#/g, ''),
                                    'html': $this.html()
                                })
                            )
                        )
                    ).append(
                        $('<div>', {
                            'id': 'collapse-' + $this.attr('href').replace(/#/g, ''),
                            'class': 'panel-collapse collapse' + active
                        }).html(
                            $('<div>').attr('class', 'panel-body').html('')
                        )
                    )
                );
            });

            $tabGroup.next().after(collapseDiv);
            $tabGroup.addClass(hidden);
            $('.tab-content.responsive').addClass(hidden);
        });

        fakewaffle.checkResize();
        fakewaffle.bindTabToCollapse();
    };

    fakewaffle.checkResize = function () {

        if ($(".panel-group.responsive").is(":visible") === true && fakewaffle.currentPosition === 'tabs') {
            fakewaffle.toggleResponsiveTabContent();
            fakewaffle.currentPosition = 'panel';
        } else if ($(".panel-group.responsive").is(":visible") === false && fakewaffle.currentPosition === 'panel') {
            fakewaffle.toggleResponsiveTabContent();
            fakewaffle.currentPosition = 'tabs';
        }

    };

    fakewaffle.toggleResponsiveTabContent = function () {

        var tabGroups = $('.nav-tabs.responsive');

        $.each(tabGroups, function () {
            var tabs = $(this).find('li a');

            $.each(tabs, function () {
                var href = $(this).attr('href').replace(/#/g, ''),
                    tabId = "#" + href,
                    panelId = "#collapse-" + href,
                    tabContent = $(tabId).html(),
                    panelContent = $(panelId + " div:first-child").html();

                $(tabId).html(panelContent);
                $(panelId + " div:first-child").html(tabContent);
            });

        });
    };

    fakewaffle.bindTabToCollapse = function () {

        var tabs = $('.nav-tabs.responsive').find('li a'),
            collapse = $(".panel-group.responsive").find('.panel-collapse');

        tabs.on('shown.bs.tab', function (e) {
            var $current = $($(e.target)[0].hash.replace(/#/, '#collapse-'));
            $current.collapse('show');

            if (e.relatedTarget) {
                var $previous = $($(e.relatedTarget)[0].hash.replace(/#/, '#collapse-'));
                $previous.collapse('hide');
            }
        });

        collapse.on('show.bs.collapse', function (e) {
            var current = $(e.target).context.id.replace(/collapse-/g, '#');

            $('a[href="' + current + '"]').tab('show');
        });
    }

    $(window).resize(function () {

        fakewaffle.checkResize();
    });

    return fakewaffle;
}(window.jQuery, fakewaffle || {}));

Zerion Mini Shell 1.0