Import of the new theme
This commit is contained in:
parent
04104f0bff
commit
0693a85c3f
331 changed files with 21077 additions and 8782 deletions
|
@ -1,49 +0,0 @@
|
|||
/*! Plugin options and other jQuery stuff */
|
||||
|
||||
// dl-menu options
|
||||
$(function() {
|
||||
$( '#dl-menu' ).dlmenu({
|
||||
animationClasses : { classin : 'dl-animate-in', classout : 'dl-animate-out' }
|
||||
});
|
||||
});
|
||||
|
||||
// FitVids options
|
||||
$(function() {
|
||||
$("article").fitVids();
|
||||
});
|
||||
|
||||
$(".close-menu").click(function () {
|
||||
$(".menu").toggleClass("disabled");
|
||||
$(".links").toggleClass("enabled");
|
||||
});
|
||||
|
||||
$(".about").click(function () {
|
||||
$("#about").css('display','block');
|
||||
});
|
||||
|
||||
$(".close-about").click(function () {
|
||||
$("#about").css('display','');
|
||||
});
|
||||
|
||||
// Add lightbox class to all image links
|
||||
$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup");
|
||||
|
||||
// Magnific-Popup options
|
||||
$(document).ready(function() {
|
||||
$('.image-popup').magnificPopup({
|
||||
type: 'image',
|
||||
tLoading: 'Loading image #%curr%...',
|
||||
gallery: {
|
||||
enabled: true,
|
||||
navigateByImgClick: true,
|
||||
preload: [0,1] // Will preload 0 - before current, and 1 after the current image
|
||||
},
|
||||
image: {
|
||||
tError: '<a href="%url%">Image #%curr%</a> could not be loaded.',
|
||||
},
|
||||
removalDelay: 300, // Delay in milliseconds before popup is removed
|
||||
// Class that is added to body when popup is open.
|
||||
// make it unique to apply your CSS animations just to this exact popup
|
||||
mainClass: 'mfp-fade'
|
||||
});
|
||||
});
|
3349
assets/js/javascript.js
Executable file
3349
assets/js/javascript.js
Executable file
File diff suppressed because one or more lines are too long
5
assets/js/javascript.min.js
vendored
Executable file
5
assets/js/javascript.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
1406
assets/js/modernizr.js
Normal file
1406
assets/js/modernizr.js
Normal file
File diff suppressed because it is too large
Load diff
1
assets/js/modernizr.min.js
vendored
Normal file
1
assets/js/modernizr.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,255 +0,0 @@
|
|||
/**
|
||||
* jquery.dlmenu.js v1.0.1
|
||||
* http://www.codrops.com
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* Copyright 2013, Codrops
|
||||
* http://www.codrops.com
|
||||
*/
|
||||
;( function( $, window, undefined ) {
|
||||
|
||||
'use strict';
|
||||
|
||||
// global
|
||||
var Modernizr = window.Modernizr, $body = $( 'body' );
|
||||
|
||||
$.DLMenu = function( options, element ) {
|
||||
this.$el = $( element );
|
||||
this._init( options );
|
||||
};
|
||||
|
||||
// the options
|
||||
$.DLMenu.defaults = {
|
||||
// classes for the animation effects
|
||||
animationClasses : { classin : 'dl-animate-in-1', classout : 'dl-animate-out-1' },
|
||||
// callback: click a link that has a sub menu
|
||||
// el is the link element (li); name is the level name
|
||||
onLevelClick : function( el, name ) { return false; },
|
||||
// callback: click a link that does not have a sub menu
|
||||
// el is the link element (li); ev is the event obj
|
||||
onLinkClick : function( el, ev ) { return false; }
|
||||
};
|
||||
|
||||
$.DLMenu.prototype = {
|
||||
_init : function( options ) {
|
||||
|
||||
// options
|
||||
this.options = $.extend( true, {}, $.DLMenu.defaults, options );
|
||||
// cache some elements and initialize some variables
|
||||
this._config();
|
||||
|
||||
var animEndEventNames = {
|
||||
'WebkitAnimation' : 'webkitAnimationEnd',
|
||||
'OAnimation' : 'oAnimationEnd',
|
||||
'msAnimation' : 'MSAnimationEnd',
|
||||
'animation' : 'animationend'
|
||||
},
|
||||
transEndEventNames = {
|
||||
'WebkitTransition' : 'webkitTransitionEnd',
|
||||
'MozTransition' : 'transitionend',
|
||||
'OTransition' : 'oTransitionEnd',
|
||||
'msTransition' : 'MSTransitionEnd',
|
||||
'transition' : 'transitionend'
|
||||
};
|
||||
// animation end event name
|
||||
this.animEndEventName = animEndEventNames[ Modernizr.prefixed( 'animation' ) ] + '.dlmenu';
|
||||
// transition end event name
|
||||
this.transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ] + '.dlmenu',
|
||||
// support for css animations and css transitions
|
||||
this.supportAnimations = Modernizr.cssanimations,
|
||||
this.supportTransitions = Modernizr.csstransitions;
|
||||
|
||||
this._initEvents();
|
||||
|
||||
},
|
||||
_config : function() {
|
||||
this.open = false;
|
||||
this.$trigger = this.$el.children( '.dl-trigger' );
|
||||
this.$menu = this.$el.children( 'ul.dl-menu' );
|
||||
this.$menuitems = this.$menu.find( 'li:not(.dl-back)' );
|
||||
this.$el.find( 'ul.dl-submenu' ).prepend( '<li class="dl-back"><a href="#">back</a></li>' );
|
||||
this.$back = this.$menu.find( 'li.dl-back' );
|
||||
},
|
||||
_initEvents : function() {
|
||||
|
||||
var self = this;
|
||||
|
||||
this.$trigger.on( 'click.dlmenu', function() {
|
||||
|
||||
if( self.open ) {
|
||||
self._closeMenu();
|
||||
}
|
||||
else {
|
||||
self._openMenu();
|
||||
}
|
||||
return false;
|
||||
|
||||
} );
|
||||
|
||||
this.$menuitems.on( 'click.dlmenu', function( event ) {
|
||||
|
||||
event.stopPropagation();
|
||||
|
||||
var $item = $(this),
|
||||
$submenu = $item.children( 'ul.dl-submenu' );
|
||||
|
||||
if( $submenu.length > 0 ) {
|
||||
|
||||
var $flyin = $submenu.clone().css({
|
||||
opacity: 0,
|
||||
margin: 0
|
||||
}).insertAfter( self.$menu ),
|
||||
onAnimationEndFn = function() {
|
||||
self.$menu.off( self.animEndEventName ).removeClass( self.options.animationClasses.classout ).addClass( 'dl-subview' );
|
||||
$item.addClass( 'dl-subviewopen' ).parents( '.dl-subviewopen:first' ).removeClass( 'dl-subviewopen' ).addClass( 'dl-subview' );
|
||||
$flyin.remove();
|
||||
};
|
||||
|
||||
setTimeout( function() {
|
||||
$flyin.addClass( self.options.animationClasses.classin );
|
||||
self.$menu.addClass( self.options.animationClasses.classout );
|
||||
if( self.supportAnimations ) {
|
||||
self.$menu.on( self.animEndEventName, onAnimationEndFn );
|
||||
}
|
||||
else {
|
||||
onAnimationEndFn.call();
|
||||
}
|
||||
|
||||
self.options.onLevelClick( $item, $item.children( 'a:first' ).text() );
|
||||
} );
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
else {
|
||||
self.options.onLinkClick( $item, event );
|
||||
}
|
||||
|
||||
} );
|
||||
|
||||
this.$back.on( 'click.dlmenu', function( event ) {
|
||||
|
||||
var $this = $( this ),
|
||||
$submenu = $this.parents( 'ul.dl-submenu:first' ),
|
||||
$item = $submenu.parent(),
|
||||
|
||||
$flyin = $submenu.clone().insertAfter( self.$menu );
|
||||
|
||||
var onAnimationEndFn = function() {
|
||||
self.$menu.off( self.animEndEventName ).removeClass( self.options.animationClasses.classin );
|
||||
$flyin.remove();
|
||||
};
|
||||
|
||||
setTimeout( function() {
|
||||
$flyin.addClass( self.options.animationClasses.classout );
|
||||
self.$menu.addClass( self.options.animationClasses.classin );
|
||||
if( self.supportAnimations ) {
|
||||
self.$menu.on( self.animEndEventName, onAnimationEndFn );
|
||||
}
|
||||
else {
|
||||
onAnimationEndFn.call();
|
||||
}
|
||||
|
||||
$item.removeClass( 'dl-subviewopen' );
|
||||
|
||||
var $subview = $this.parents( '.dl-subview:first' );
|
||||
if( $subview.is( 'li' ) ) {
|
||||
$subview.addClass( 'dl-subviewopen' );
|
||||
}
|
||||
$subview.removeClass( 'dl-subview' );
|
||||
} );
|
||||
|
||||
return false;
|
||||
|
||||
} );
|
||||
|
||||
},
|
||||
closeMenu : function() {
|
||||
if( this.open ) {
|
||||
this._closeMenu();
|
||||
}
|
||||
},
|
||||
_closeMenu : function() {
|
||||
var self = this,
|
||||
onTransitionEndFn = function() {
|
||||
self.$menu.off( self.transEndEventName );
|
||||
self._resetMenu();
|
||||
};
|
||||
|
||||
this.$menu.removeClass( 'dl-menuopen' );
|
||||
this.$menu.addClass( 'dl-menu-toggle' );
|
||||
this.$trigger.removeClass( 'dl-active' );
|
||||
|
||||
if( this.supportTransitions ) {
|
||||
this.$menu.on( this.transEndEventName, onTransitionEndFn );
|
||||
}
|
||||
else {
|
||||
onTransitionEndFn.call();
|
||||
}
|
||||
|
||||
this.open = false;
|
||||
},
|
||||
openMenu : function() {
|
||||
if( !this.open ) {
|
||||
this._openMenu();
|
||||
}
|
||||
},
|
||||
_openMenu : function() {
|
||||
var self = this;
|
||||
// clicking somewhere else makes the menu close
|
||||
$body.off( 'click' ).on( 'click.dlmenu', function() {
|
||||
self._closeMenu() ;
|
||||
} );
|
||||
this.$menu.addClass( 'dl-menuopen dl-menu-toggle' ).on( this.transEndEventName, function() {
|
||||
$( this ).removeClass( 'dl-menu-toggle' );
|
||||
} );
|
||||
this.$trigger.addClass( 'dl-active' );
|
||||
this.open = true;
|
||||
},
|
||||
// resets the menu to its original state (first level of options)
|
||||
_resetMenu : function() {
|
||||
this.$menu.removeClass( 'dl-subview' );
|
||||
this.$menuitems.removeClass( 'dl-subview dl-subviewopen' );
|
||||
}
|
||||
};
|
||||
|
||||
var logError = function( message ) {
|
||||
if ( window.console ) {
|
||||
window.console.error( message );
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.dlmenu = function( options ) {
|
||||
if ( typeof options === 'string' ) {
|
||||
var args = Array.prototype.slice.call( arguments, 1 );
|
||||
this.each(function() {
|
||||
var instance = $.data( this, 'dlmenu' );
|
||||
if ( !instance ) {
|
||||
logError( "cannot call methods on dlmenu prior to initialization; " +
|
||||
"attempted to call method '" + options + "'" );
|
||||
return;
|
||||
}
|
||||
if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) {
|
||||
logError( "no such method '" + options + "' for dlmenu instance" );
|
||||
return;
|
||||
}
|
||||
instance[ options ].apply( instance, args );
|
||||
});
|
||||
}
|
||||
else {
|
||||
this.each(function() {
|
||||
var instance = $.data( this, 'dlmenu' );
|
||||
if ( instance ) {
|
||||
instance._init();
|
||||
}
|
||||
else {
|
||||
instance = $.data( this, 'dlmenu', new $.DLMenu( options, this ) );
|
||||
}
|
||||
});
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
} )( jQuery, window );
|
|
@ -1,81 +0,0 @@
|
|||
/*global jQuery */
|
||||
/*jshint multistr:true, browser:true */
|
||||
/*!
|
||||
* FitVids 1.0
|
||||
*
|
||||
* Copyright 2011, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
|
||||
* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
|
||||
* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
|
||||
*
|
||||
* Date: Thu Sept 01 18:00:00 2011 -0500
|
||||
*/
|
||||
|
||||
(function( $ ){
|
||||
|
||||
"use strict";
|
||||
|
||||
$.fn.fitVids = function( options ) {
|
||||
var settings = {
|
||||
customSelector: null
|
||||
};
|
||||
|
||||
var div = document.createElement('div'),
|
||||
ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0];
|
||||
|
||||
div.className = 'fit-vids-style';
|
||||
div.innerHTML = '­<style> \
|
||||
.fluid-width-video-wrapper { \
|
||||
width: 100%; \
|
||||
position: relative; \
|
||||
padding: 0; \
|
||||
} \
|
||||
\
|
||||
.fluid-width-video-wrapper iframe, \
|
||||
.fluid-width-video-wrapper object, \
|
||||
.fluid-width-video-wrapper embed { \
|
||||
position: absolute; \
|
||||
top: 0; \
|
||||
left: 0; \
|
||||
width: 100%; \
|
||||
height: 100%; \
|
||||
} \
|
||||
</style>';
|
||||
|
||||
ref.parentNode.insertBefore(div,ref);
|
||||
|
||||
if ( options ) {
|
||||
$.extend( settings, options );
|
||||
}
|
||||
|
||||
return this.each(function(){
|
||||
var selectors = [
|
||||
"iframe[src*='player.vimeo.com']",
|
||||
"iframe[src*='www.youtube.com']",
|
||||
"iframe[src*='www.youtube-nocookie.com']",
|
||||
"iframe[src*='www.kickstarter.com']",
|
||||
"object",
|
||||
"embed"
|
||||
];
|
||||
|
||||
if (settings.customSelector) {
|
||||
selectors.push(settings.customSelector);
|
||||
}
|
||||
|
||||
var $allVideos = $(this).find(selectors.join(','));
|
||||
|
||||
$allVideos.each(function(){
|
||||
var $this = $(this);
|
||||
if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
|
||||
var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),
|
||||
width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
|
||||
aspectRatio = height / width;
|
||||
if(!$this.attr('id')){
|
||||
var videoID = 'fitvid' + Math.floor(Math.random()*999999);
|
||||
$this.attr('id', videoID);
|
||||
}
|
||||
$this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%");
|
||||
$this.removeAttr('height').removeAttr('width');
|
||||
});
|
||||
});
|
||||
};
|
||||
})( jQuery );
|
File diff suppressed because it is too large
Load diff
|
@ -1,342 +0,0 @@
|
|||
/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
|
||||
/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */
|
||||
|
||||
window.matchMedia = window.matchMedia || (function( doc, undefined ) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var bool,
|
||||
docElem = doc.documentElement,
|
||||
refNode = docElem.firstElementChild || docElem.firstChild,
|
||||
// fakeBody required for <FF4 when executed in <head>
|
||||
fakeBody = doc.createElement( "body" ),
|
||||
div = doc.createElement( "div" );
|
||||
|
||||
div.id = "mq-test-1";
|
||||
div.style.cssText = "position:absolute;top:-100em";
|
||||
fakeBody.style.background = "none";
|
||||
fakeBody.appendChild(div);
|
||||
|
||||
return function(q){
|
||||
|
||||
div.innerHTML = "­<style media=\"" + q + "\"> #mq-test-1 { width: 42px; }</style>";
|
||||
|
||||
docElem.insertBefore( fakeBody, refNode );
|
||||
bool = div.offsetWidth === 42;
|
||||
docElem.removeChild( fakeBody );
|
||||
|
||||
return {
|
||||
matches: bool,
|
||||
media: q
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}( document ));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*! Respond.js v1.1.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
|
||||
(function( win ){
|
||||
|
||||
"use strict";
|
||||
|
||||
//exposed namespace
|
||||
var respond = {};
|
||||
win.respond = respond;
|
||||
|
||||
//define update even in native-mq-supporting browsers, to avoid errors
|
||||
respond.update = function(){};
|
||||
|
||||
//expose media query support flag for external use
|
||||
respond.mediaQueriesSupported = win.matchMedia && win.matchMedia( "only all" ).matches;
|
||||
|
||||
//if media queries are supported, exit here
|
||||
if( respond.mediaQueriesSupported ){
|
||||
return;
|
||||
}
|
||||
|
||||
//define vars
|
||||
var doc = win.document,
|
||||
docElem = doc.documentElement,
|
||||
mediastyles = [],
|
||||
rules = [],
|
||||
appendedEls = [],
|
||||
parsedSheets = {},
|
||||
resizeThrottle = 30,
|
||||
head = doc.getElementsByTagName( "head" )[0] || docElem,
|
||||
base = doc.getElementsByTagName( "base" )[0],
|
||||
links = head.getElementsByTagName( "link" ),
|
||||
requestQueue = [],
|
||||
|
||||
//loop stylesheets, send text content to translate
|
||||
ripCSS = function(){
|
||||
|
||||
for( var i = 0; i < links.length; i++ ){
|
||||
var sheet = links[ i ],
|
||||
href = sheet.href,
|
||||
media = sheet.media,
|
||||
isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet";
|
||||
|
||||
//only links plz and prevent re-parsing
|
||||
if( !!href && isCSS && !parsedSheets[ href ] ){
|
||||
// selectivizr exposes css through the rawCssText expando
|
||||
if (sheet.styleSheet && sheet.styleSheet.rawCssText) {
|
||||
translate( sheet.styleSheet.rawCssText, href, media );
|
||||
parsedSheets[ href ] = true;
|
||||
} else {
|
||||
if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base) ||
|
||||
href.replace( RegExp.$1, "" ).split( "/" )[0] === win.location.host ){
|
||||
requestQueue.push( {
|
||||
href: href,
|
||||
media: media
|
||||
} );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
makeRequests();
|
||||
},
|
||||
|
||||
//recurse through request queue, get css text
|
||||
makeRequests = function(){
|
||||
if( requestQueue.length ){
|
||||
var thisRequest = requestQueue.shift();
|
||||
|
||||
ajax( thisRequest.href, function( styles ){
|
||||
translate( styles, thisRequest.href, thisRequest.media );
|
||||
parsedSheets[ thisRequest.href ] = true;
|
||||
|
||||
// by wrapping recursive function call in setTimeout
|
||||
// we prevent "Stack overflow" error in IE7
|
||||
win.setTimeout(function(){ makeRequests(); },0);
|
||||
} );
|
||||
}
|
||||
},
|
||||
|
||||
//find media blocks in css text, convert to style blocks
|
||||
translate = function( styles, href, media ){
|
||||
var qs = styles.match( /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi ),
|
||||
ql = qs && qs.length || 0;
|
||||
|
||||
//try to get CSS path
|
||||
href = href.substring( 0, href.lastIndexOf( "/" ) );
|
||||
|
||||
var repUrls = function( css ){
|
||||
return css.replace( /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, "$1" + href + "$2$3" );
|
||||
},
|
||||
useMedia = !ql && media;
|
||||
|
||||
//if path exists, tack on trailing slash
|
||||
if( href.length ){ href += "/"; }
|
||||
|
||||
//if no internal queries exist, but media attr does, use that
|
||||
//note: this currently lacks support for situations where a media attr is specified on a link AND
|
||||
//its associated stylesheet has internal CSS media queries.
|
||||
//In those cases, the media attribute will currently be ignored.
|
||||
if( useMedia ){
|
||||
ql = 1;
|
||||
}
|
||||
|
||||
for( var i = 0; i < ql; i++ ){
|
||||
var fullq, thisq, eachq, eql;
|
||||
|
||||
//media attr
|
||||
if( useMedia ){
|
||||
fullq = media;
|
||||
rules.push( repUrls( styles ) );
|
||||
}
|
||||
//parse for styles
|
||||
else{
|
||||
fullq = qs[ i ].match( /@media *([^\{]+)\{([\S\s]+?)$/ ) && RegExp.$1;
|
||||
rules.push( RegExp.$2 && repUrls( RegExp.$2 ) );
|
||||
}
|
||||
|
||||
eachq = fullq.split( "," );
|
||||
eql = eachq.length;
|
||||
|
||||
for( var j = 0; j < eql; j++ ){
|
||||
thisq = eachq[ j ];
|
||||
mediastyles.push( {
|
||||
media : thisq.split( "(" )[ 0 ].match( /(only\s+)?([a-zA-Z]+)\s?/ ) && RegExp.$2 || "all",
|
||||
rules : rules.length - 1,
|
||||
hasquery : thisq.indexOf("(") > -1,
|
||||
minw : thisq.match( /\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ),
|
||||
maxw : thisq.match( /\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" )
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
||||
applyMedia();
|
||||
},
|
||||
|
||||
lastCall,
|
||||
|
||||
resizeDefer,
|
||||
|
||||
// returns the value of 1em in pixels
|
||||
getEmValue = function() {
|
||||
var ret,
|
||||
div = doc.createElement('div'),
|
||||
body = doc.body,
|
||||
fakeUsed = false;
|
||||
|
||||
div.style.cssText = "position:absolute;font-size:1em;width:1em";
|
||||
|
||||
if( !body ){
|
||||
body = fakeUsed = doc.createElement( "body" );
|
||||
body.style.background = "none";
|
||||
}
|
||||
|
||||
body.appendChild( div );
|
||||
|
||||
docElem.insertBefore( body, docElem.firstChild );
|
||||
|
||||
ret = div.offsetWidth;
|
||||
|
||||
if( fakeUsed ){
|
||||
docElem.removeChild( body );
|
||||
}
|
||||
else {
|
||||
body.removeChild( div );
|
||||
}
|
||||
|
||||
//also update eminpx before returning
|
||||
ret = eminpx = parseFloat(ret);
|
||||
|
||||
return ret;
|
||||
},
|
||||
|
||||
//cached container for 1em value, populated the first time it's needed
|
||||
eminpx,
|
||||
|
||||
//enable/disable styles
|
||||
applyMedia = function( fromResize ){
|
||||
var name = "clientWidth",
|
||||
docElemProp = docElem[ name ],
|
||||
currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp,
|
||||
styleBlocks = {},
|
||||
lastLink = links[ links.length-1 ],
|
||||
now = (new Date()).getTime();
|
||||
|
||||
//throttle resize calls
|
||||
if( fromResize && lastCall && now - lastCall < resizeThrottle ){
|
||||
win.clearTimeout( resizeDefer );
|
||||
resizeDefer = win.setTimeout( applyMedia, resizeThrottle );
|
||||
return;
|
||||
}
|
||||
else {
|
||||
lastCall = now;
|
||||
}
|
||||
|
||||
for( var i in mediastyles ){
|
||||
if( mediastyles.hasOwnProperty( i ) ){
|
||||
var thisstyle = mediastyles[ i ],
|
||||
min = thisstyle.minw,
|
||||
max = thisstyle.maxw,
|
||||
minnull = min === null,
|
||||
maxnull = max === null,
|
||||
em = "em";
|
||||
|
||||
if( !!min ){
|
||||
min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
|
||||
}
|
||||
if( !!max ){
|
||||
max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
|
||||
}
|
||||
|
||||
// if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true
|
||||
if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){
|
||||
if( !styleBlocks[ thisstyle.media ] ){
|
||||
styleBlocks[ thisstyle.media ] = [];
|
||||
}
|
||||
styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//remove any existing respond style element(s)
|
||||
for( var j in appendedEls ){
|
||||
if( appendedEls.hasOwnProperty( j ) ){
|
||||
if( appendedEls[ j ] && appendedEls[ j ].parentNode === head ){
|
||||
head.removeChild( appendedEls[ j ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//inject active styles, grouped by media type
|
||||
for( var k in styleBlocks ){
|
||||
if( styleBlocks.hasOwnProperty( k ) ){
|
||||
var ss = doc.createElement( "style" ),
|
||||
css = styleBlocks[ k ].join( "\n" );
|
||||
|
||||
ss.type = "text/css";
|
||||
ss.media = k;
|
||||
|
||||
//originally, ss was appended to a documentFragment and sheets were appended in bulk.
|
||||
//this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one!
|
||||
head.insertBefore( ss, lastLink.nextSibling );
|
||||
|
||||
if ( ss.styleSheet ){
|
||||
ss.styleSheet.cssText = css;
|
||||
}
|
||||
else {
|
||||
ss.appendChild( doc.createTextNode( css ) );
|
||||
}
|
||||
|
||||
//push to appendedEls to track for later removal
|
||||
appendedEls.push( ss );
|
||||
}
|
||||
}
|
||||
},
|
||||
//tweaked Ajax functions from Quirksmode
|
||||
ajax = function( url, callback ) {
|
||||
var req = xmlHttp();
|
||||
if (!req){
|
||||
return;
|
||||
}
|
||||
req.open( "GET", url, true );
|
||||
req.onreadystatechange = function () {
|
||||
if ( req.readyState !== 4 || req.status !== 200 && req.status !== 304 ){
|
||||
return;
|
||||
}
|
||||
callback( req.responseText );
|
||||
};
|
||||
if ( req.readyState === 4 ){
|
||||
return;
|
||||
}
|
||||
req.send( null );
|
||||
},
|
||||
//define ajax obj
|
||||
xmlHttp = (function() {
|
||||
var xmlhttpmethod = false;
|
||||
try {
|
||||
xmlhttpmethod = new win.XMLHttpRequest();
|
||||
}
|
||||
catch( e ){
|
||||
xmlhttpmethod = new win.ActiveXObject( "Microsoft.XMLHTTP" );
|
||||
}
|
||||
return function(){
|
||||
return xmlhttpmethod;
|
||||
};
|
||||
})();
|
||||
|
||||
//translate CSS
|
||||
ripCSS();
|
||||
|
||||
//expose update for re-running respond later on
|
||||
respond.update = ripCSS;
|
||||
|
||||
//adjust on resize
|
||||
function callMedia(){
|
||||
applyMedia( true );
|
||||
}
|
||||
if( win.addEventListener ){
|
||||
win.addEventListener( "resize", callMedia, false );
|
||||
}
|
||||
else if( win.attachEvent ){
|
||||
win.attachEvent( "onresize", callMedia );
|
||||
}
|
||||
})(this);
|
1
assets/js/scripts.min.js
vendored
1
assets/js/scripts.min.js
vendored
File diff suppressed because one or more lines are too long
5
assets/js/vendor/jquery-1.9.1.min.js
vendored
5
assets/js/vendor/jquery-1.9.1.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in a new issue