/**
* responsiveNavigation.js v1.1
* Created by Ben Gillbanks
* Available under GPL2 license
*/
; ( function( $ ) {
$.fn.responsiveNavigation = function( options ) {
var defaults, display, resized;
defaults = {
min_menu_size: 4,
prefix: '-',
ignore_children: false,
breakpoint: 449
};
options = $.extend( defaults, options );
display = function() {
var window_width = $( window ).width();
if ( window_width < options.breakpoint ) {
$( '.rn_nav' ).hide();
$( '.rn_select' ).show();
}
if ( window_width > options.breakpoint ) {
$( '.rn_nav' ).show();
$( '.rn_select' ).hide();
}
};
$( window ).resize( function() {
resized = true;
} );
// super simple debounce
// fires once every half second to do the work if needed
setInterval( function() {
if ( resized ) {
display();
}
resized = false;
}, 500 );
return this.each( function() {
var $this, select, navDepth;
$this = $( this );
if ( $this.find( 'a' ).length > options.min_menu_size ) {
$this.addClass( 'rn_nav' );
select = $( '' );
navDepth = $this.parents().length;
// add default text
var navOptions = $( '' );
navOptions.text( js_i18n.menu );
navOptions.attr( 'value', '' );
select.append( navOptions );
$this.find( 'a' ).each( function() {
var depth, i, optionText, navOptions;
depth = ( ( $( this ).parents().length - navDepth ) / 2 ) - 1;
if ( depth === 0 || ( depth > 0 && options.ignore_children === false ) ) {
optionText = $( this ).text();
if ( depth > 0 ) {
optionText = ' ' + optionText;
}
for ( i = 0; i < depth; i++ ) {
optionText = options.prefix + optionText;
}
navOptions = $( '' );
navOptions.attr( 'value', $( this ).attr( 'href' ) );
if ( document.location === $( this ).attr( 'href' ) ) {
navOptions.attr( 'selected', 'selected' );
}
navOptions.text( optionText );
select.append( navOptions );
}
} );
select.change( function() {
if ( this.value !== '' ) {
document.location = this.value;
}
} );
}
$this.after( select );
display();
} );
};
} )( jQuery );
( function( $ ) {
var masonry_footer_properties = {};
$( document ).ready( function() {
// Set default heights for social media widgets
// Twitter
$( 'a.twitter-timeline, iframe.twitter-timeline' ).each( function() {
var thisHeight = $( this ).attr( 'height' );
$( this ).parent().css( 'min-height', thisHeight + 'px' );
} );
// Facebook
$( '.fb-page' ).each( function() {
var $set_height = $( this ).data( 'height' );
var $show_facepile = $( this ).data( 'show-facepile' );
var $show_posts = $( this ).data( 'show-posts' ); // AKA stream
var $min_height = $set_height; // set the default 'min-height'
// These values are defaults from the FB widget.
var $no_posts_no_faces = 130;
var $no_posts = 220;
if ( $show_posts ) {
// Showing posts; may also be showing faces and/or cover - the latter doesn't affect the height at all.
$min_height = $set_height;
} else if ( $show_facepile ) {
// Showing facepile with or without cover image - both would be same height.
// If the user selected height is lower than the no_posts height, we'll use that instead
$min_height = ( $set_height < $no_posts ) ? $set_height : $no_posts;
} else {
// Either just showing cover, or nothing is selected (both are same height).
// If the user selected height is lower than the no_posts_no_faces height, we'll use that instead
$min_height = ( $set_height < $no_posts_no_faces ) ? $set_height : $no_posts_no_faces;
}
// apply min-height to .fb-page container
$( this ).css( 'min-height', $min_height + 'px' );
} );
// Dropdown menus.
$( 'ul#nav' ).superfish( {
animation: { opacity: 'show', height: 'show' },
speed: 250
} );
// Responsve nav.
$( 'ul#nav' ).responsiveNavigation();
// Masonry.
$( window ).load( function() {
if ( $.isFunction( $.fn.masonry ) ) {
masonry_footer_properties = {
itemSelector: '.widget',
gutter: 0,
isResizable: true,
isOriginLeft: !$( 'body' ).is( '.rtl' )
};
$( '#footer-widgets' ).masonry( masonry_footer_properties );
}
} );
// Add links to post content.
add_showcase_links();
$( 'body' ).on( 'post-load', function() {
add_showcase_links();
} );
} );
function add_showcase_links() {
$( 'article .showcase' ).click( function() {
if ( !$( this ).hasClass( 'can_click' ) ) {
var url = $( this ).find( 'h2.posttitle a' ).attr( 'href' );
document.location.href = url;
$( this ).addClass( 'can_click' );
}
} );
}
} )( jQuery );