﻿(function ( $ ) {
    $.fn.TITabs = function( options ) {

        var $win = jQuery(window),
            $currentWidth = $win.width();

        this.each(function(){

            var $this = jQuery(this);
            var isAnimated = false;
            var isMobile = false;
            
            var settings = $.extend({
                group: jQuery($this.attr("data-group"), $this),
                active: jQuery($this.attr("data-active"), $this),
                tab: jQuery($this.attr("data-tab"), $this),
                activeTab: jQuery($this.attr("data-active-tab"), $this),
                activeTabClass: "active-tab",
                activeContentClass: "visible-content",
                breakPoint: parseInt($this.attr("data-breakpoint")),
            }, options );

            if(typeof $this.attr("data-active-tab-class") !== "undefined")
                settings.activeTabClass = $this.attr("data-active-tab-class");

            if(typeof $this.attr("data-active-content-class") !== "undefined")
                settings.activeContentClass = $this.attr("data-active-content-class");

            if ( $win.width() <= settings.breakPoint )
                isMobile = true;

            settings.tab.click( function(e){
                e.preventDefault();

                var $tab = jQuery(this);
				var $tabLinks = $tab.attr("href") ? $tab.attr("href") : $tab.attr("data-href");
				var $tabLink = $tab.attr("href") ? jQuery("[href='" + $tabLinks + "']") : jQuery("[data-href='" + $tabLinks + "']");
                var $content = jQuery($tabLinks);
                var $link = jQuery($tabLink);
                var $allTabs = settings.tab.not($tab);
                var $allContent =  settings.group.not($content);

                if(!isNaN(settings.breakPoint) && $win.width() <=  settings.breakPoint) { 
                    if( $content.is(":visible") && $link.hasClass(settings.activeTabClass)){
                        hideTab($link,$content);
                    } else {
                        showTab($link,$content);
                    }
                } else {
                    hideTab($allTabs,$allContent);
                    showTab($link,$content);
                }

            });

            function showTab(link,content){
                link.addClass(settings.activeTabClass);
                content.slideDown("fast", function(){ 
                    content.addClass(settings.activeContentClass) 
                    isAnimated = false;
                });
                setTimeout(resizeFacebookPagePlugin,1000);
                twitterWidth()
            }

            function hideTab(link,content){
                link.removeClass(settings.activeTabClass);
                content.slideUp("fast", function(){ 
                    content.removeClass(settings.activeContentClass) 
                    isAnimated = false;
                });
            }

            function initSetup(){

                if(isAnimated) return;
                isAnimated = true;

                if(settings.activeTab.length)
                    settings.activeTab.trigger("click");
                else
                    settings.tab.first().trigger("click");
            }

            function isBreakPointChanged(){
                if ( isMobile && $win.width() > settings.breakPoint ) {
                    isMobile = false;
                    return true;
                }
                if ( !isMobile && $win.width() <= settings.breakPoint ) {
                    isMobile = true;
                    return true;
                }
                if ( $win.width() <= settings.breakPoint ) return false;
                if ( isNaN(settings.breakPoint) ) return false;
            }

            initSetup();

            $win.resize(function(){
                if( isBreakPointChanged() )
                    initSetup();
                if ($currentWidth == $win.width()) return;
                    $currentWidth = $win.width();
                    resizeFacebookPagePlugin();
                    twitterWidth()
            });

        });

    };

}( jQuery ));

jQuery(window).load(function(){
    resizeFacebookPagePlugin();
    twitterWidth()
});

function resizeFacebookPagePlugin(){
    $(".skFBWrapper").each(function () {
        var $parent = jQuery(this),
            $iframe = $parent.find(".facebook-plugin"),
            $cntWidth = $parent.width(),
            $iframeWidth = $iframe.width(),
            $cntHeight = $parent.height(),
            $url = $iframe.attr('data-src'),
            $pHeight = parseInt($cntHeight),
            $pWidth = parseInt($cntWidth),
            $updateUrl = $url.replace(/&width=.*&height=.*&small/g, "&width=" + $pWidth + "&height=" + $pHeight + "&small");
        if ($pWidth > 500) {
            $pWidth = 500;
        }
        if (($cntWidth == $iframeWidth && typeof $iframe.attr("src") !== "undefined") ||
            ($cntWidth >= 500 && $iframeWidth >= 500 && typeof $iframe.attr("src") !== "undefined")) return;
        $iframe.attr({ "src": $updateUrl, "height": $pHeight, "width": $pWidth });
        $iframe.css({ "height": $pHeight, "width": $pWidth });
    });
}

function twitterWidth() {
    const $twitterParentEle = $('.skTwitter .skTabsCnt'),
        $twitterParentEleWidth =  $twitterParentEle.innerWidth(),
        $twitterIframe = $twitterParentEle.find('iframe');
    $twitterIframe.width($twitterParentEleWidth)
}