// ------------------------------------------------------------------------------------------- // Tab Shortcode // ------------------------------------------------------------------------------------------- (function($) { "use strict"; $.fn.avia_sc_tabs = function(options) { var defaults = { heading: '.tab', content:'.tab_content', active:'active_tab', sidebar: false }; var win = $(window), options = $.extend(defaults, options); return this.each(function() { var container = $(this), tab_titles = $('
').prependTo(container), tabs = $(options.heading, container), content = $(options.content, container), newtabs = false, oldtabs = false; newtabs = tabs.clone(); oldtabs = tabs.addClass('fullsize-tab').attr('aria-hidden', true ); tabs = newtabs; tabs.prependTo(tab_titles).each(function(i) { var tab = $(this), the_oldtab = false; if(newtabs) { the_oldtab = oldtabs.eq( i ); } tab.addClass('tab_counter_'+i).on('click', function() { open_content(tab, i, the_oldtab); return false; }); tab.on('keydown', function(objEvent) { if (objEvent.keyCode === 13) // if user presses 'enter' { tab.trigger('click'); } }); if(newtabs) { the_oldtab.on('click', function() { open_content(the_oldtab, i, tab); return false; }); the_oldtab.on('keydown', function(objEvent) { if (objEvent.keyCode === 13) // if user presses 'enter' { the_oldtab.trigger('click'); } }); } }); set_size(); trigger_default_open(false); win.on("debouncedresize", set_size); $('a').on('click',function(){ var hash = $(this).attr('href'); if(typeof hash != "undefined" && hash) { hash = hash.replace(/^.*?#/,''); trigger_default_open('#'+hash); } }); function set_size() { if( ! options.sidebar) { return; } content.css({'min-height': tab_titles.outerHeight() + 1}); } function open_content(tab, i, alternate_tab) { if(!tab.is('.'+options.active)) { $('.'+options.active, container).removeClass(options.active); $('.'+options.active+'_content', container).attr('aria-hidden', true).removeClass(options.active+'_content'); tab.addClass(options.active); var new_loc = tab.data('fake-id'); if( typeof new_loc == 'string' ) { window.location.replace( new_loc ); } if( alternate_tab ) { alternate_tab.addClass(options.active); } var active_c = content.eq( i ).addClass(options.active+'_content').attr('aria-hidden', false); if(typeof click_container != 'undefined' && click_container.length) { sidebar_shadow.height(active_c.outerHeight()); } //check if tab title is in viewport. if not scroll up var el_offset = active_c.offset().top, scoll_target = el_offset - 50 - parseInt($('html').css('margin-top'),10); if(win.scrollTop() > el_offset) { $('html:not(:animated),body:not(:animated)').scrollTop(scoll_target); } } win.trigger( 'av-content-el-height-changed', tab ); } function trigger_default_open(hash) { if( ! hash && window.location.hash ) { hash = window.location.hash; } if( ! hash ) { return; } var open = tabs.filter('[data-fake-id="'+hash+'"]'); if(open.length) { if( ! open.is('.active_tab') ) { open.trigger('click'); } window.scrollTo(0, container.offset().top - 70); } } }); }; }(jQuery));