├── img ├── .gitkeep └── cornell.jpg ├── dev └── wordpress │ └── wp-content │ └── themes │ └── ectc_theme │ ├── img │ ├── .gitkeep │ ├── rss.png │ ├── cornell.jpg │ ├── cropped.jpg │ ├── front1.jpg │ ├── front2.jpg │ ├── stroked.png │ ├── twitter.png │ ├── facebook.png │ ├── instagram.png │ ├── logo_small.png │ ├── share-this.png │ ├── stroked2.png │ ├── white_logo.png │ ├── you_tube.png │ ├── cropped-drams.jpg │ ├── facebook_black.png │ ├── raindrop_flag.png │ ├── speech_bubble.png │ ├── twitter_black.png │ ├── bergstrom_naname.jpg │ └── mini_twitter_bird.png │ ├── css │ ├── foundation-icons.eot │ ├── foundation-icons.ttf │ ├── foundation-icons.woff │ ├── custom_styles.css │ └── normalize.css │ ├── page-about.php │ ├── page-area-info.php │ ├── page-contact.php │ ├── page-faq.php │ ├── page-schedule.php │ ├── page-registration.php │ ├── index.php │ ├── js │ ├── ectc.js │ ├── vendor │ │ ├── jquery.cookie.js │ │ ├── placeholder.js │ │ └── fastclick.js │ └── foundation │ │ ├── foundation.alert.js │ │ ├── foundation.accordion.js │ │ ├── foundation.equalizer.js │ │ ├── foundation.offcanvas.js │ │ ├── foundation.tab.js │ │ ├── foundation.magellan.js │ │ ├── foundation.slider.js │ │ └── foundation.interchange.js │ ├── sidebar.php │ ├── 404.php │ ├── page-professionals.php │ ├── page.php │ ├── header.php │ ├── page-events.php │ ├── topbarAlt.php │ ├── single.php │ ├── page-workshops.php │ ├── style.css │ ├── tags.php │ ├── author.php │ ├── category.php │ ├── archive.php │ ├── search.php │ ├── topbar.php │ ├── footer.php │ ├── functions.php │ └── comments.php ├── robots.txt ├── README.rst ├── js ├── ectc.js ├── vendor │ ├── jquery.cookie.js │ ├── placeholder.js │ └── fastclick.js └── foundation │ ├── foundation.alert.js │ ├── foundation.accordion.js │ ├── foundation.equalizer.js │ ├── foundation.offcanvas.js │ ├── foundation.tab.js │ ├── foundation.magellan.js │ ├── foundation.slider.js │ └── foundation.interchange.js ├── css ├── custom_styles.css └── normalize.css └── index.html /img/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /img/cornell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/img/cornell.jpg -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | # www.robotstxt.org/ 2 | # www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449 3 | 4 | User-agent: * 5 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | ====== 2 | README 3 | ====== 4 | 5 | Current Issues/To-Do 6 | -------------------- 7 | 8 | * Future, full site ideas 9 | 10 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/rss.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/cornell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/cornell.jpg -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/cropped.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/cropped.jpg -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/front1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/front1.jpg -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/front2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/front2.jpg -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/stroked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/stroked.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/twitter.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/facebook.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/instagram.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/logo_small.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/share-this.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/share-this.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/stroked2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/stroked2.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/white_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/white_logo.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/you_tube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/you_tube.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/cropped-drams.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/cropped-drams.jpg -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/facebook_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/facebook_black.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/raindrop_flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/raindrop_flag.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/speech_bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/speech_bubble.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/twitter_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/twitter_black.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/css/foundation-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/css/foundation-icons.eot -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/css/foundation-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/css/foundation-icons.ttf -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/css/foundation-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/css/foundation-icons.woff -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/bergstrom_naname.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/bergstrom_naname.jpg -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/img/mini_twitter_bird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/ectc-2015/master/dev/wordpress/wp-content/themes/ectc_theme/img/mini_twitter_bird.png -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page-about.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page-area-info.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page-contact.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page-faq.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page-schedule.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page-registration.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /js/ectc.js: -------------------------------------------------------------------------------- 1 | $(document).ready( function() { 2 | $("#submit").click( function() { 3 | var form = JSON.stringify( 4 | { 5 | email: $("#email").val(), 6 | }); 7 | console.log(form); 8 | $.ajax({ 9 | url: "https://docs.google.com/forms/d/1Zb-l4nFYYfEETKZdvaQA1NY08NzgNH_wEb_vPVoNAMo/formResponse", 10 | contentType: "application/json", 11 | dataType: "json", 12 | type: "POST", 13 | data: form, 14 | success: function(data) { 15 | //Do something cool 16 | } 17 | }); 18 | }); 19 | }); -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/ectc.js: -------------------------------------------------------------------------------- 1 | $(document).ready( function() { 2 | $("#submit").click( function() { 3 | var form = JSON.stringify( 4 | { 5 | email: $("#email").val(), 6 | }); 7 | console.log(form); 8 | $.ajax({ 9 | url: "https://docs.google.com/forms/d/1Zb-l4nFYYfEETKZdvaQA1NY08NzgNH_wEb_vPVoNAMo/formResponse", 10 | contentType: "application/json", 11 | dataType: "json", 12 | type: "POST", 13 | data: form, 14 | success: function(data) { 15 | //Do something cool 16 | } 17 | }); 18 | }); 19 | }); -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/sidebar.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 6 |
7 | 8 | 9 | 10 |
11 | 14 |
15 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/404.php: -------------------------------------------------------------------------------- 1 |
2 |

3 |
4 |

does not exist. So stop, take a deep breath, and think a little. Maybe you can find what you want by searching. Maybe you made a typo. As a humble 404 Not Found page, there is only so much I can know. But I wish you the best of luck at finding the thing you are looking for, whomever you are.', 'hbd-theme' ); ?>

5 | 6 |
7 |
-------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page-professionals.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 |
7 |

Professionals!

8 |
9 |
10 |
11 | 'Professional', 'posts_per_page' => -1) ); 13 | // The Loop 14 | while ( $the_query->have_posts() ) : $the_query->the_post(); ?> 15 |
16 |

17 | 18 |

19 | 20 |
21 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 7 | 8 |
> 9 |

10 |
11 | 12 | ' . __( 'Pages:', 'your-theme' ) . '&after=
') ?> 13 | ', '' ) ?> 14 |
15 |
16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | East Coast Taiko Conference 2015 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
-------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page-events.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |
7 |
8 |

Events!

9 |
10 |
11 |
12 | 'Events', 'posts_per_page' => -1) ); 14 | // The Loop 15 | while ( $the_query->have_posts() ) : $the_query->the_post(); ?> 16 |
17 | 18 | 'names' )); 21 | if(array_search('completed', $tags) !== FALSE) { 22 | //echo "class='selected'>"; 23 | } else { 24 | //echo ">"; 25 | } 26 | ?> 27 |

28 | 29 |

30 | 31 |
32 | 33 | 34 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /js/vendor/jquery.cookie.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Cookie Plugin v1.4.1 3 | * https://github.com/carhartl/jquery-cookie 4 | * 5 | * Copyright 2013 Klaus Hartl 6 | * Released under the MIT license 7 | */ 8 | !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); 9 | -------------------------------------------------------------------------------- /js/foundation/foundation.alert.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.alert = { 5 | name : 'alert', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | callback: function (){} 11 | }, 12 | 13 | init : function (scope, method, options) { 14 | this.bindings(method, options); 15 | }, 16 | 17 | events : function () { 18 | var self = this, 19 | S = this.S; 20 | 21 | $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] a.close', function (e) { 22 | var alertBox = S(this).closest('[' + self.attr_name() + ']'), 23 | settings = alertBox.data(self.attr_name(true) + '-init') || self.settings; 24 | 25 | e.preventDefault(); 26 | if ('transitionend' in window || 'webkitTransitionEnd' in window || 'oTransitionEnd' in window) { 27 | alertBox.addClass("alert-close"); 28 | alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function(e) { 29 | S(this).trigger('close').remove(); 30 | settings.callback(); 31 | }); 32 | } else { 33 | alertBox.fadeOut(300, function () { 34 | S(this).trigger('close').remove(); 35 | settings.callback(); 36 | }); 37 | } 38 | }); 39 | }, 40 | 41 | reflow : function () {} 42 | }; 43 | }(jQuery, window, window.document)); 44 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/vendor/jquery.cookie.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Cookie Plugin v1.4.1 3 | * https://github.com/carhartl/jquery-cookie 4 | * 5 | * Copyright 2013 Klaus Hartl 6 | * Released under the MIT license 7 | */ 8 | !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); 9 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/foundation/foundation.alert.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.alert = { 5 | name : 'alert', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | callback: function (){} 11 | }, 12 | 13 | init : function (scope, method, options) { 14 | this.bindings(method, options); 15 | }, 16 | 17 | events : function () { 18 | var self = this, 19 | S = this.S; 20 | 21 | $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] a.close', function (e) { 22 | var alertBox = S(this).closest('[' + self.attr_name() + ']'), 23 | settings = alertBox.data(self.attr_name(true) + '-init') || self.settings; 24 | 25 | e.preventDefault(); 26 | if ('transitionend' in window || 'webkitTransitionEnd' in window || 'oTransitionEnd' in window) { 27 | alertBox.addClass("alert-close"); 28 | alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function(e) { 29 | S(this).trigger('close').remove(); 30 | settings.callback(); 31 | }); 32 | } else { 33 | alertBox.fadeOut(300, function () { 34 | S(this).trigger('close').remove(); 35 | settings.callback(); 36 | }); 37 | } 38 | }); 39 | }, 40 | 41 | reflow : function () {} 42 | }; 43 | }(jQuery, window, window.document)); 44 | -------------------------------------------------------------------------------- /css/custom_styles.css: -------------------------------------------------------------------------------- 1 | input[type="email"] { 2 | min-height: 50px; 3 | font-size: 24px; 4 | margin: 0px; 5 | background: rgba(200, 200, 200, 0.25); 6 | color: white; 7 | padding-left: 15px; 8 | padding-right: 30px; 9 | } 10 | 11 | input[type="email"]:focus { 12 | font-size: 24px; 13 | background: rgba(200, 200, 200, 0.25); 14 | color: white; 15 | } 16 | 17 | input[type="submit"]:hover { 18 | background: #7A7B92; 19 | color: #ffffff; 20 | } 21 | 22 | input[type="submit"] { 23 | margin: 0px; 24 | min-height: 50px; 25 | font-size: 18px; 26 | font-weight: 600; 27 | width: 100%; 28 | /*text-transform: uppercase;*/ 29 | padding: 10px; 30 | text-decoration: none; 31 | border: none; 32 | cursor: pointer; 33 | -webkit-transition: 250ms linear all; 34 | -moz-transition: 250ms linear all; 35 | transition: 250ms linear all; 36 | background: rgba(99, 167, 241, 0.9); 37 | /*background: #63A7F1;*/ 38 | color: #ffffff; 39 | } 40 | 41 | .alert-box.success { 42 | background-color: #CECECE; 43 | border-color: #A0A0A0; 44 | color: black; 45 | font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; 46 | font-weight: normal; 47 | font-style: normal; 48 | padding: .4rem; 49 | margin-top: 10px; 50 | } 51 | 52 | .description { 53 | color: #DDDDDD; 54 | } 55 | 56 | strong { 57 | color: #FFFFFF; 58 | } 59 | 60 | @media only screen and (min-width: 40.063em) { 61 | .page-wrapper { 62 | position: relative; 63 | padding: 0px; 64 | top: 50%; 65 | 66 | -ms-transform: translate(0%, -50%); /* IE 9 */ 67 | -webkit-transform: translate(0%, -50%); 68 | transform: translate(0%, -50%); 69 | } 70 | } 71 | 72 | @media only screen and (max-width: 40.063em) { 73 | .page-wrapper { 74 | padding-top: 10%; 75 | } 76 | } 77 | 78 | 79 | -------------------------------------------------------------------------------- /js/foundation/foundation.accordion.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.accordion = { 5 | name : 'accordion', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | active_class: 'active', 11 | multi_expand: false, 12 | toggleable: true, 13 | callback : function () {} 14 | }, 15 | 16 | init : function (scope, method, options) { 17 | this.bindings(method, options); 18 | }, 19 | 20 | events : function () { 21 | var self = this; 22 | var S = this.S; 23 | S(this.scope) 24 | .off('.fndtn.accordion') 25 | .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a', function (e) { 26 | var accordion = S(this).closest('[' + self.attr_name() + ']'), 27 | target = S('#' + this.href.split('#')[1]), 28 | siblings = S('dd > .content', accordion), 29 | aunts = $('dd', accordion), 30 | groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()), 31 | settings = accordion.data(self.attr_name(true) + '-init'), 32 | active_content = S('dd > .content.' + settings.active_class, accordion); 33 | e.preventDefault(); 34 | 35 | if (accordion.attr(self.attr_name())) { 36 | siblings = siblings.add('[' + groupSelector + '] dd > .content'); 37 | aunts = aunts.add('[' + groupSelector + '] dd'); 38 | } 39 | 40 | if (settings.toggleable && target.is(active_content)) { 41 | target.parent('dd').toggleClass(settings.active_class, false); 42 | return target.toggleClass(settings.active_class, false); 43 | } 44 | 45 | if (!settings.multi_expand) { 46 | siblings.removeClass(settings.active_class); 47 | aunts.removeClass(settings.active_class); 48 | } 49 | 50 | target.addClass(settings.active_class).parent().addClass(settings.active_class); 51 | settings.callback(target); 52 | }); 53 | }, 54 | 55 | off : function () {}, 56 | 57 | reflow : function () {} 58 | }; 59 | }(jQuery, window, window.document)); 60 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/foundation/foundation.accordion.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.accordion = { 5 | name : 'accordion', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | active_class: 'active', 11 | multi_expand: false, 12 | toggleable: true, 13 | callback : function () {} 14 | }, 15 | 16 | init : function (scope, method, options) { 17 | this.bindings(method, options); 18 | }, 19 | 20 | events : function () { 21 | var self = this; 22 | var S = this.S; 23 | S(this.scope) 24 | .off('.fndtn.accordion') 25 | .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a', function (e) { 26 | var accordion = S(this).closest('[' + self.attr_name() + ']'), 27 | target = S('#' + this.href.split('#')[1]), 28 | siblings = S('dd > .content', accordion), 29 | aunts = $('dd', accordion), 30 | groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()), 31 | settings = accordion.data(self.attr_name(true) + '-init'), 32 | active_content = S('dd > .content.' + settings.active_class, accordion); 33 | e.preventDefault(); 34 | 35 | if (accordion.attr(self.attr_name())) { 36 | siblings = siblings.add('[' + groupSelector + '] dd > .content'); 37 | aunts = aunts.add('[' + groupSelector + '] dd'); 38 | } 39 | 40 | if (settings.toggleable && target.is(active_content)) { 41 | target.parent('dd').toggleClass(settings.active_class, false); 42 | return target.toggleClass(settings.active_class, false); 43 | } 44 | 45 | if (!settings.multi_expand) { 46 | siblings.removeClass(settings.active_class); 47 | aunts.removeClass(settings.active_class); 48 | } 49 | 50 | target.addClass(settings.active_class).parent().addClass(settings.active_class); 51 | settings.callback(target); 52 | }); 53 | }, 54 | 55 | off : function () {}, 56 | 57 | reflow : function () {} 58 | }; 59 | }(jQuery, window, window.document)); 60 | -------------------------------------------------------------------------------- /js/vendor/placeholder.js: -------------------------------------------------------------------------------- 1 | /*! http://mths.be/placeholder v2.0.8 by @mathias */ 2 | !function(a,b,c){function d(a){var b={},d=/^jQuery\d+$/;return c.each(a.attributes,function(a,c){c.specified&&!d.test(c.name)&&(b[c.name]=c.value)}),b}function e(a,b){var d=this,e=c(d);if(d.value==e.attr("placeholder")&&e.hasClass("placeholder"))if(e.data("placeholder-password")){if(e=e.hide().next().show().attr("id",e.removeAttr("id").data("placeholder-id")),a===!0)return e[0].value=b;e.focus()}else d.value="",e.removeClass("placeholder"),d==g()&&d.select()}function f(){var a,b=this,f=c(b),g=this.id;if(""==b.value){if("password"==b.type){if(!f.data("placeholder-textinput")){try{a=f.clone().attr({type:"text"})}catch(h){a=c("").attr(c.extend(d(this),{type:"text"}))}a.removeAttr("name").data({"placeholder-password":f,"placeholder-id":g}).bind("focus.placeholder",e),f.data({"placeholder-textinput":a,"placeholder-id":g}).before(a)}f=f.removeAttr("id").hide().prev().attr("id",g).show()}f.addClass("placeholder"),f[0].value=f.attr("placeholder")}else f.removeClass("placeholder")}function g(){try{return b.activeElement}catch(a){}}var h,i,j="[object OperaMini]"==Object.prototype.toString.call(a.operamini),k="placeholder"in b.createElement("input")&&!j,l="placeholder"in b.createElement("textarea")&&!j,m=c.fn,n=c.valHooks,o=c.propHooks;k&&l?(i=m.placeholder=function(){return this},i.input=i.textarea=!0):(i=m.placeholder=function(){var a=this;return a.filter((k?"textarea":":input")+"[placeholder]").not(".placeholder").bind({"focus.placeholder":e,"blur.placeholder":f}).data("placeholder-enabled",!0).trigger("blur.placeholder"),a},i.input=k,i.textarea=l,h={get:function(a){var b=c(a),d=b.data("placeholder-password");return d?d[0].value:b.data("placeholder-enabled")&&b.hasClass("placeholder")?"":a.value},set:function(a,b){var d=c(a),h=d.data("placeholder-password");return h?h[0].value=b:d.data("placeholder-enabled")?(""==b?(a.value=b,a!=g()&&f.call(a)):d.hasClass("placeholder")?e.call(a,!0,b)||(a.value=b):a.value=b,d):a.value=b}},k||(n.input=h,o.value=h),l||(n.textarea=h,o.value=h),c(function(){c(b).delegate("form","submit.placeholder",function(){var a=c(".placeholder",this).each(e);setTimeout(function(){a.each(f)},10)})}),c(a).bind("beforeunload.placeholder",function(){c(".placeholder").each(function(){this.value=""})}))}(this,document,jQuery); 3 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/vendor/placeholder.js: -------------------------------------------------------------------------------- 1 | /*! http://mths.be/placeholder v2.0.8 by @mathias */ 2 | !function(a,b,c){function d(a){var b={},d=/^jQuery\d+$/;return c.each(a.attributes,function(a,c){c.specified&&!d.test(c.name)&&(b[c.name]=c.value)}),b}function e(a,b){var d=this,e=c(d);if(d.value==e.attr("placeholder")&&e.hasClass("placeholder"))if(e.data("placeholder-password")){if(e=e.hide().next().show().attr("id",e.removeAttr("id").data("placeholder-id")),a===!0)return e[0].value=b;e.focus()}else d.value="",e.removeClass("placeholder"),d==g()&&d.select()}function f(){var a,b=this,f=c(b),g=this.id;if(""==b.value){if("password"==b.type){if(!f.data("placeholder-textinput")){try{a=f.clone().attr({type:"text"})}catch(h){a=c("").attr(c.extend(d(this),{type:"text"}))}a.removeAttr("name").data({"placeholder-password":f,"placeholder-id":g}).bind("focus.placeholder",e),f.data({"placeholder-textinput":a,"placeholder-id":g}).before(a)}f=f.removeAttr("id").hide().prev().attr("id",g).show()}f.addClass("placeholder"),f[0].value=f.attr("placeholder")}else f.removeClass("placeholder")}function g(){try{return b.activeElement}catch(a){}}var h,i,j="[object OperaMini]"==Object.prototype.toString.call(a.operamini),k="placeholder"in b.createElement("input")&&!j,l="placeholder"in b.createElement("textarea")&&!j,m=c.fn,n=c.valHooks,o=c.propHooks;k&&l?(i=m.placeholder=function(){return this},i.input=i.textarea=!0):(i=m.placeholder=function(){var a=this;return a.filter((k?"textarea":":input")+"[placeholder]").not(".placeholder").bind({"focus.placeholder":e,"blur.placeholder":f}).data("placeholder-enabled",!0).trigger("blur.placeholder"),a},i.input=k,i.textarea=l,h={get:function(a){var b=c(a),d=b.data("placeholder-password");return d?d[0].value:b.data("placeholder-enabled")&&b.hasClass("placeholder")?"":a.value},set:function(a,b){var d=c(a),h=d.data("placeholder-password");return h?h[0].value=b:d.data("placeholder-enabled")?(""==b?(a.value=b,a!=g()&&f.call(a)):d.hasClass("placeholder")?e.call(a,!0,b)||(a.value=b):a.value=b,d):a.value=b}},k||(n.input=h,o.value=h),l||(n.textarea=h,o.value=h),c(function(){c(b).delegate("form","submit.placeholder",function(){var a=c(".placeholder",this).each(e);setTimeout(function(){a.each(f)},10)})}),c(a).bind("beforeunload.placeholder",function(){c(".placeholder").each(function(){this.value=""})}))}(this,document,jQuery); 3 | -------------------------------------------------------------------------------- /js/foundation/foundation.equalizer.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.equalizer = { 5 | name : 'equalizer', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | use_tallest: true, 11 | before_height_change: $.noop, 12 | after_height_change: $.noop, 13 | equalize_on_stack: false 14 | }, 15 | 16 | init : function (scope, method, options) { 17 | Foundation.inherit(this, 'image_loaded'); 18 | this.bindings(method, options); 19 | this.reflow(); 20 | }, 21 | 22 | events : function () { 23 | this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function(e){ 24 | this.reflow(); 25 | }.bind(this)); 26 | }, 27 | 28 | equalize: function(equalizer) { 29 | var isStacked = false, 30 | vals = equalizer.find('[' + this.attr_name() + '-watch]:visible'), 31 | settings = equalizer.data(this.attr_name(true)+'-init'); 32 | 33 | if (vals.length === 0) return; 34 | var firstTopOffset = vals.first().offset().top; 35 | settings.before_height_change(); 36 | equalizer.trigger('before-height-change'); 37 | vals.height('inherit'); 38 | vals.each(function(){ 39 | var el = $(this); 40 | if (el.offset().top !== firstTopOffset) { 41 | isStacked = true; 42 | } 43 | }); 44 | 45 | if (settings.equalize_on_stack === false) { 46 | if (isStacked) return; 47 | }; 48 | 49 | var heights = vals.map(function(){ return $(this).outerHeight(false) }).get(); 50 | 51 | if (settings.use_tallest) { 52 | var max = Math.max.apply(null, heights); 53 | vals.css('height', max); 54 | } else { 55 | var min = Math.min.apply(null, heights); 56 | vals.css('height', min); 57 | } 58 | settings.after_height_change(); 59 | equalizer.trigger('after-height-change'); 60 | }, 61 | 62 | reflow : function () { 63 | var self = this; 64 | 65 | this.S('[' + this.attr_name() + ']', this.scope).each(function(){ 66 | var $eq_target = $(this); 67 | self.image_loaded(self.S('img', this), function(){ 68 | self.equalize($eq_target) 69 | }); 70 | }); 71 | } 72 | }; 73 | })(jQuery, window, window.document); 74 | 75 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/foundation/foundation.equalizer.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.equalizer = { 5 | name : 'equalizer', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | use_tallest: true, 11 | before_height_change: $.noop, 12 | after_height_change: $.noop, 13 | equalize_on_stack: false 14 | }, 15 | 16 | init : function (scope, method, options) { 17 | Foundation.inherit(this, 'image_loaded'); 18 | this.bindings(method, options); 19 | this.reflow(); 20 | }, 21 | 22 | events : function () { 23 | this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function(e){ 24 | this.reflow(); 25 | }.bind(this)); 26 | }, 27 | 28 | equalize: function(equalizer) { 29 | var isStacked = false, 30 | vals = equalizer.find('[' + this.attr_name() + '-watch]:visible'), 31 | settings = equalizer.data(this.attr_name(true)+'-init'); 32 | 33 | if (vals.length === 0) return; 34 | var firstTopOffset = vals.first().offset().top; 35 | settings.before_height_change(); 36 | equalizer.trigger('before-height-change'); 37 | vals.height('inherit'); 38 | vals.each(function(){ 39 | var el = $(this); 40 | if (el.offset().top !== firstTopOffset) { 41 | isStacked = true; 42 | } 43 | }); 44 | 45 | if (settings.equalize_on_stack === false) { 46 | if (isStacked) return; 47 | }; 48 | 49 | var heights = vals.map(function(){ return $(this).outerHeight(false) }).get(); 50 | 51 | if (settings.use_tallest) { 52 | var max = Math.max.apply(null, heights); 53 | vals.css('height', max); 54 | } else { 55 | var min = Math.min.apply(null, heights); 56 | vals.css('height', min); 57 | } 58 | settings.after_height_change(); 59 | equalizer.trigger('after-height-change'); 60 | }, 61 | 62 | reflow : function () { 63 | var self = this; 64 | 65 | this.S('[' + this.attr_name() + ']', this.scope).each(function(){ 66 | var $eq_target = $(this); 67 | self.image_loaded(self.S('img', this), function(){ 68 | self.equalize($eq_target) 69 | }); 70 | }); 71 | } 72 | }; 73 | })(jQuery, window, window.document); 74 | 75 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/topbarAlt.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 |

February 13-15, 2015

7 |

East Coast Taiko Conference

8 |

Cornell University, Ithaca, New York

9 |
10 |
11 |
12 | 13 |
14 |
15 | 16 | 17 | 18 | 19 |
20 |
21 |
22 |
23 |
24 | 45 |
46 |
47 |
-------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/single.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 7 | 8 |
> 9 | 10 |

11 | 12 |
13 | 14 | ' . __( 'Pages:', 'hbd-theme' ) . '&after=
') ?> 15 |
16 | 17 |
18 | permalink. Follow any comments here with the RSS feed for this post.', 'hbd-theme' ), 19 | get_the_category_list(', '), 20 | get_the_tag_list( __( ' and tagged ', 'hbd-theme' ), ', ', '' ), 21 | get_permalink(), 22 | the_title_attribute('echo=0'), 23 | comments_rss() ) ?> 24 | 25 | comment_status) && ('open' == $post->ping_status) ) : // Comments and trackbacks open ?> 26 | Post a comment or leave a trackback: Trackback URL.', 'hbd-theme' ), get_trackback_url() ) ?> 27 | comment_status) && ('open' == $post->ping_status) ) : // Only trackbacks open ?> 28 | Trackback URL.', 'hbd-theme' ), get_trackback_url() ) ?> 29 | comment_status) && !('open' == $post->ping_status) ) : // Only comments open ?> 30 | post a comment.', 'hbd-theme' ) ?> 31 | comment_status) && !('open' == $post->ping_status) ) : // Comments and trackbacks closed ?> 32 | 33 | 34 | ", "" ) ?> 35 |
36 | 37 | 40 | 41 | 42 | 43 |
44 |
45 | 46 | 47 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/page-workshops.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |
7 |
8 |

Workshops!

9 |

Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong. Eiusmod swine spare ribs reprehenderit culpa. Boudin aliqua adipisicing rump corned beef.

10 |
11 |
12 |
13 |
14 | 15 |
    16 |
  • Session:
  • 17 |
  • 1
  • 18 |
  • 2
  • 19 |
  • 3
  • 20 |
21 |
22 |
23 | 24 | 25 |
26 | 27 |
28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 'Workshop', 'posts_per_page' => -1) ); 43 | // The Loop 44 | 45 | while ( $the_query->have_posts() ) : $the_query->the_post(); ?> 46 | 47 | 'names' )); 50 | $instructor = ""; 51 | $session = "SESSION 1"; 52 | $level = "Beginner"; 53 | foreach($tags as $tag) { 54 | switch($tag) { 55 | case "EXP_ALL": 56 | break; 57 | case "SESSION1": 58 | $session = "SESSION 1"; 59 | break; 60 | case "SESSION2": 61 | $session = "SESSION 2"; 62 | break; 63 | case "SESSION3": 64 | $session = "SESSION 3"; 65 | break; 66 | default: 67 | $instructor = $tag; 68 | } 69 | } 70 | ?> 71 | 72 | 73 | 74 | 75 | 76 | 82 | 83 | 84 | 85 | 86 |
InstructorTitleSessionLevelContent
77 | 78 |

79 | 80 |

81 |
87 | 88 |
89 |
90 | 91 | -------------------------------------------------------------------------------- /js/foundation/foundation.offcanvas.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.offcanvas = { 5 | name : 'offcanvas', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | open_method: 'move', 11 | close_on_click: true 12 | }, 13 | 14 | init : function (scope, method, options) { 15 | this.bindings(method, options); 16 | }, 17 | 18 | events : function () { 19 | var self = this, 20 | S = self.S, 21 | move_class = '', 22 | right_postfix = '', 23 | left_postfix = ''; 24 | 25 | if (this.settings.open_method === 'move') { 26 | move_class = 'move-'; 27 | right_postfix = 'right'; 28 | left_postfix = 'left'; 29 | } else if (this.settings.open_method === 'overlap') { 30 | move_class = 'offcanvas-overlap'; 31 | } 32 | 33 | S(this.scope).off('.offcanvas') 34 | .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) { 35 | self.click_toggle_class(e, move_class + right_postfix); 36 | }) 37 | .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) { 38 | var settings = self.get_settings(e); 39 | if (settings.close_on_click) { 40 | self.hide.call(self, move_class + right_postfix, self.get_wrapper(e)); 41 | } 42 | }) 43 | .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) { 44 | self.click_toggle_class(e, move_class + left_postfix); 45 | }) 46 | .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) { 47 | var settings = self.get_settings(e); 48 | if (settings.close_on_click) { 49 | self.hide.call(self, move_class + left_postfix, self.get_wrapper(e)); 50 | } 51 | }) 52 | .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) { 53 | self.click_remove_class(e, move_class + left_postfix); 54 | if (right_postfix) self.click_remove_class(e, move_class + right_postfix); 55 | }); 56 | 57 | }, 58 | 59 | toggle: function(class_name, $off_canvas) { 60 | $off_canvas = $off_canvas || this.get_wrapper(); 61 | if ($off_canvas.is('.' + class_name)) { 62 | this.hide(class_name, $off_canvas); 63 | } else { 64 | this.show(class_name, $off_canvas); 65 | } 66 | }, 67 | 68 | show: function(class_name, $off_canvas) { 69 | $off_canvas = $off_canvas || this.get_wrapper(); 70 | $off_canvas.trigger('open'); 71 | $off_canvas.addClass(class_name); 72 | }, 73 | 74 | hide: function(class_name, $off_canvas) { 75 | $off_canvas = $off_canvas || this.get_wrapper(); 76 | $off_canvas.trigger('close'); 77 | $off_canvas.removeClass(class_name); 78 | }, 79 | 80 | click_toggle_class: function(e, class_name) { 81 | e.preventDefault(); 82 | var $off_canvas = this.get_wrapper(e); 83 | this.toggle(class_name, $off_canvas); 84 | }, 85 | 86 | click_remove_class: function(e, class_name) { 87 | e.preventDefault(); 88 | var $off_canvas = this.get_wrapper(e); 89 | this.hide(class_name, $off_canvas); 90 | }, 91 | 92 | get_settings: function(e) { 93 | var offcanvas = this.S(e.target).closest('[' + this.attr_name() + ']'); 94 | return offcanvas.data(this.attr_name(true) + '-init') || this.settings; 95 | }, 96 | 97 | get_wrapper: function(e) { 98 | var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap'); 99 | 100 | if ($off_canvas.length === 0) { 101 | $off_canvas = this.S('.off-canvas-wrap'); 102 | } 103 | return $off_canvas; 104 | }, 105 | 106 | reflow : function () {} 107 | }; 108 | }(jQuery, window, window.document)); 109 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/foundation/foundation.offcanvas.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.offcanvas = { 5 | name : 'offcanvas', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | open_method: 'move', 11 | close_on_click: true 12 | }, 13 | 14 | init : function (scope, method, options) { 15 | this.bindings(method, options); 16 | }, 17 | 18 | events : function () { 19 | var self = this, 20 | S = self.S, 21 | move_class = '', 22 | right_postfix = '', 23 | left_postfix = ''; 24 | 25 | if (this.settings.open_method === 'move') { 26 | move_class = 'move-'; 27 | right_postfix = 'right'; 28 | left_postfix = 'left'; 29 | } else if (this.settings.open_method === 'overlap') { 30 | move_class = 'offcanvas-overlap'; 31 | } 32 | 33 | S(this.scope).off('.offcanvas') 34 | .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) { 35 | self.click_toggle_class(e, move_class + right_postfix); 36 | }) 37 | .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) { 38 | var settings = self.get_settings(e); 39 | if (settings.close_on_click) { 40 | self.hide.call(self, move_class + right_postfix, self.get_wrapper(e)); 41 | } 42 | }) 43 | .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) { 44 | self.click_toggle_class(e, move_class + left_postfix); 45 | }) 46 | .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) { 47 | var settings = self.get_settings(e); 48 | if (settings.close_on_click) { 49 | self.hide.call(self, move_class + left_postfix, self.get_wrapper(e)); 50 | } 51 | }) 52 | .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) { 53 | self.click_remove_class(e, move_class + left_postfix); 54 | if (right_postfix) self.click_remove_class(e, move_class + right_postfix); 55 | }); 56 | 57 | }, 58 | 59 | toggle: function(class_name, $off_canvas) { 60 | $off_canvas = $off_canvas || this.get_wrapper(); 61 | if ($off_canvas.is('.' + class_name)) { 62 | this.hide(class_name, $off_canvas); 63 | } else { 64 | this.show(class_name, $off_canvas); 65 | } 66 | }, 67 | 68 | show: function(class_name, $off_canvas) { 69 | $off_canvas = $off_canvas || this.get_wrapper(); 70 | $off_canvas.trigger('open'); 71 | $off_canvas.addClass(class_name); 72 | }, 73 | 74 | hide: function(class_name, $off_canvas) { 75 | $off_canvas = $off_canvas || this.get_wrapper(); 76 | $off_canvas.trigger('close'); 77 | $off_canvas.removeClass(class_name); 78 | }, 79 | 80 | click_toggle_class: function(e, class_name) { 81 | e.preventDefault(); 82 | var $off_canvas = this.get_wrapper(e); 83 | this.toggle(class_name, $off_canvas); 84 | }, 85 | 86 | click_remove_class: function(e, class_name) { 87 | e.preventDefault(); 88 | var $off_canvas = this.get_wrapper(e); 89 | this.hide(class_name, $off_canvas); 90 | }, 91 | 92 | get_settings: function(e) { 93 | var offcanvas = this.S(e.target).closest('[' + this.attr_name() + ']'); 94 | return offcanvas.data(this.attr_name(true) + '-init') || this.settings; 95 | }, 96 | 97 | get_wrapper: function(e) { 98 | var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap'); 99 | 100 | if ($off_canvas.length === 0) { 101 | $off_canvas = this.S('.off-canvas-wrap'); 102 | } 103 | return $off_canvas; 104 | }, 105 | 106 | reflow : function () {} 107 | }; 108 | }(jQuery, window, window.document)); 109 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/style.css: -------------------------------------------------------------------------------- 1 | #banner-bar { 2 | height: 10px; 3 | width: 100%; 4 | background: #000000; 5 | margin-bottom: 15px; 6 | } 7 | 8 | .fi-social-twitter:hover { 9 | color:#00aced; 10 | } 11 | .fi-social-facebook:hover { 12 | color:#43609c; 13 | } 14 | .fi-rss:hover { 15 | color:#ed8431; 16 | } 17 | .fi-mail:hover { 18 | 19 | } 20 | 21 | .workshop-info { 22 | 23 | } 24 | 25 | li.divide { 26 | font-size: 24px; 27 | margin-top: -7px; 28 | margin-left: 14px; 29 | margin-right: 14px; 30 | } 31 | 32 | a { 33 | color: rgba(99, 167, 241, 1.0); 34 | } 35 | 36 | a:hover { 37 | color: black; 38 | } 39 | 40 | .hi { 41 | font-size: 30px; 42 | margin: 6px; 43 | } 44 | 45 | #header { 46 | margin-top: 11px; 47 | margin-bottom: 15px; 48 | padding-left: 165px; 49 | } 50 | 51 | #header-small { 52 | margin-top: 11px; 53 | margin-bottom: 0px; 54 | padding-left: 125px; 55 | } 56 | 57 | #header-image { 58 | position: absolute; 59 | z-index: 99; 60 | width: 240px; 61 | height: 240px; 62 | margin-left: -40px; 63 | } 64 | 65 | #header-image-small { 66 | position: absolute; 67 | z-index: 99; 68 | width: 100px; 69 | height: 100px; 70 | margin-left: 20px; 71 | } 72 | 73 | .barred { 74 | border-right: solid #000000; 75 | } 76 | 77 | footer { 78 | background: #DDDDDD; 79 | height: 150px; 80 | background-repeat: no-repeat; 81 | background-position: right; 82 | background-size: 40%; 83 | } 84 | 85 | footer hr { 86 | border: solid #aaaaaa; 87 | border-width: 2px 0 0; 88 | clear: both; 89 | margin: 0rem 0 1.1875rem; 90 | height: 0; 91 | } 92 | 93 | #image-orbit { 94 | z-index: 1; 95 | } 96 | 97 | input[type="email"] { 98 | min-height: 50px; 99 | font-size: 24px; 100 | margin: 0px; 101 | background: rgba(200, 200, 200, 0.25); 102 | color: #666666; 103 | padding-left: 15px; 104 | padding-right: 30px; 105 | } 106 | 107 | input[type="email"]:focus { 108 | font-size: 24px; 109 | background: rgba(200, 200, 200, 0.25); 110 | color: white; 111 | } 112 | 113 | input[type="search"] { 114 | min-height: 20px; 115 | font-size: 16px; 116 | margin: 0px; 117 | background: rgba(200, 200, 200, 0.25); 118 | color: #666666; 119 | padding-left: 15px; 120 | padding-right: 30px; 121 | } 122 | 123 | input[type="search"]:focus { 124 | font-size: 16px; 125 | background: rgba(200, 200, 200, 0.25); 126 | color: black; 127 | } 128 | 129 | input[type="submit"]:hover { 130 | background: #7A7B92; 131 | color: #ffffff; 132 | } 133 | 134 | input[type="submit"] { 135 | margin: 0px; 136 | font-size: 16px; 137 | font-weight: 600; 138 | width: 150px; 139 | /*text-transform: uppercase;*/ 140 | padding: 10px; 141 | text-decoration: none; 142 | border: none; 143 | cursor: pointer; 144 | -webkit-transition: 250ms linear all; 145 | -moz-transition: 250ms linear all; 146 | transition: 250ms linear all; 147 | background: rgba(99, 167, 241, 0.9); 148 | /*background: #63A7F1;*/ 149 | color: #ffffff; 150 | } 151 | 152 | .alert-box.success { 153 | background-color: #CECECE; 154 | border-color: #A0A0A0; 155 | color: black; 156 | font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; 157 | font-weight: normal; 158 | font-style: normal; 159 | padding: .4rem; 160 | margin-top: 10px; 161 | } 162 | 163 | .description { 164 | color: #DDDDDD; 165 | } 166 | 167 | strong { 168 | color: #FFFFFF; 169 | } 170 | 171 | @media only screen and (min-width: 40.063em) { 172 | .page-wrapper { 173 | position: relative; 174 | padding: 0px; 175 | top: 50%; 176 | 177 | -ms-transform: translate(0%, -50%); /* IE 9 */ 178 | -webkit-transform: translate(0%, -50%); 179 | transform: translate(0%, -50%); 180 | } 181 | } 182 | 183 | @media only screen and (max-width: 40.063em) { 184 | .page-wrapper { 185 | padding-top: 10%; 186 | } 187 | } 188 | 189 | 190 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/tags.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 7 | 8 |

9 | 10 | 11 | 12 | max_num_pages; if ( $total_pages > 1 ) { ?> 13 | 17 | 18 | 19 | 20 | 21 |
> 22 |

23 | 24 | 32 | 33 |
34 | »', 'hbd-theme' ) ); ?> 35 |
36 | 37 |
38 | 39 | | 40 | 41 | 42 | 43 | 44 | |\n\t\t\t\t\t\t", "\n\t\t\t\t\t\n" ) ?> 45 |
46 |
47 | 48 | 49 | 50 | max_num_pages; if ( $total_pages > 1 ) { ?> 51 | 55 | 56 | 57 |
58 | 59 |
60 | 61 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/author.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 7 | 8 |

%s', 'hbd-theme' ), "$authordata->display_name" ) ?>

9 | user_description; if ( !empty($authordesc) ) echo apply_filters( 'archive_meta', '
' . $authordesc . '
' ); ?> 10 | 11 | 12 | 13 | max_num_pages; if ( $total_pages > 1 ) { ?> 14 | 18 | 19 | 20 | 21 | 22 |
> 23 |

24 | 25 | 33 | 34 |
35 | »', 'hbd-theme' ) ); ?> 36 |
37 | 38 |
39 | 40 | | 41 | ' . __('Tagged ', 'hbd-theme' ) . '', ", ", "\n\t\t\t\t\t\t|\n" ) ?> 42 | 43 | |\n\t\t\t\t\t\t", "\n\t\t\t\t\t\n" ) ?> 44 |
45 |
46 | 47 | 48 | 49 | max_num_pages; if ( $total_pages > 1 ) { ?> 50 | 53 | 54 | 55 |
56 | 57 |
58 | 59 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/category.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 7 | 8 |

9 | ' . $categorydesc . '
' ); ?> 10 | 11 | 12 | 13 | max_num_pages; if ( $total_pages > 1 ) { ?> 14 | 18 | 19 | 20 | 21 | 22 |
> 23 |

24 | 25 | 33 | 34 |
35 | »', 'hbd-theme' ) ); ?> 36 |
37 | 38 |
39 | 40 | 41 | | 42 | 43 | | 44 | ' . __('Tagged ', 'hbd-theme' ) . '', ", ", "\n\t\t\t\t\t\t|\n" ) ?> 45 | 46 | |\n\t\t\t\t\t\t", "\n\t\t\t\t\t\n" ) ?> 47 |
48 |
49 | 50 | 51 | 52 | max_num_pages; if ( $total_pages > 1 ) { ?> 53 | 57 | 58 | 59 |
60 |
61 | 62 | 63 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/css/custom_styles.css: -------------------------------------------------------------------------------- 1 | #banner-bar { 2 | height: 10px; 3 | width: 100%; 4 | background: #000000; 5 | margin-bottom: 15px; 6 | } 7 | 8 | .fi-social-twitter:hover { 9 | color:#00aced; 10 | } 11 | .fi-social-facebook:hover { 12 | color:#43609c; 13 | } 14 | .fi-rss:hover { 15 | color:#ed8431; 16 | } 17 | .fi-mail:hover { 18 | color: #888888; 19 | } 20 | 21 | h3 { 22 | font-family: Roboto Condensed; 23 | font-weight: 700; 24 | } 25 | 26 | h4 { 27 | font-family: Roboto Condensed; 28 | font-weight: 400; 29 | } 30 | 31 | .weekday { 32 | font-weight: bold; 33 | margin-bottom: 5px; 34 | } 35 | 36 | .time { 37 | margin-bottom: 2px; 38 | margin-right: 0px; 39 | font-size: 14px; 40 | margin-left:5px; 41 | } 42 | 43 | .inline-list2 { 44 | margin: 0 auto 1.0625rem auto; 45 | margin-right: 15px; 46 | padding: 0; 47 | list-style: none; 48 | overflow: hidden; 49 | }.inline-list2 > li { 50 | list-style: none; 51 | float: left; 52 | display: block; } 53 | .inline-list2 > li > * { 54 | display: block; } 55 | 56 | .workshop-info { 57 | 58 | } 59 | 60 | .uppercase { 61 | text-transform: uppercase; 62 | } 63 | 64 | li.divide { 65 | font-size: 24px; 66 | margin-top: -7px; 67 | margin-left: 14px; 68 | margin-right: 14px; 69 | } 70 | 71 | a { 72 | color: rgba(99, 167, 241, 1.0); 73 | } 74 | 75 | a:hover { 76 | color: black; 77 | } 78 | 79 | .hi { 80 | font-size: 30px; 81 | margin: 6px; 82 | } 83 | 84 | #header { 85 | margin-top: 11px; 86 | margin-bottom: 15px; 87 | padding-left: 165px; 88 | } 89 | 90 | #header-small { 91 | margin-top: 11px; 92 | margin-bottom: 0px; 93 | padding-left: 125px; 94 | } 95 | 96 | #header-image { 97 | position: absolute; 98 | z-index: 99; 99 | width: 240px; 100 | height: 240px; 101 | margin-left: -40px; 102 | } 103 | 104 | #header-image-small { 105 | position: absolute; 106 | z-index: 99; 107 | width: 100px; 108 | height: 100px; 109 | margin-left: 20px; 110 | } 111 | 112 | .barred { 113 | border-right: solid #000000; 114 | border-width: 1px; 115 | } 116 | 117 | footer { 118 | background: #DDDDDD; 119 | height: 100px; 120 | background-repeat: no-repeat; 121 | background-position: right; 122 | background-size: 40%; 123 | } 124 | 125 | footer hr { 126 | border: solid #aaaaaa; 127 | border-width: 2px 0 0; 128 | clear: both; 129 | margin: 0rem 0 1.1875rem; 130 | height: 0; 131 | } 132 | 133 | #image-orbit { 134 | z-index: 1; 135 | } 136 | 137 | input[type="email"] { 138 | min-height: 50px; 139 | font-size: 24px; 140 | margin: 0px; 141 | background: rgba(200, 200, 200, 0.25); 142 | color: #666666; 143 | padding-left: 15px; 144 | padding-right: 30px; 145 | } 146 | 147 | input[type="email"]:focus { 148 | font-size: 24px; 149 | background: rgba(200, 200, 200, 0.25); 150 | color: white; 151 | } 152 | 153 | input[type="search"] { 154 | min-height: 20px; 155 | font-size: 16px; 156 | margin: 0px; 157 | background: rgba(200, 200, 200, 0.25); 158 | color: #666666; 159 | padding-left: 15px; 160 | padding-right: 30px; 161 | } 162 | 163 | input[type="search"]:focus { 164 | font-size: 16px; 165 | background: rgba(200, 200, 200, 0.25); 166 | color: black; 167 | } 168 | 169 | input[type="submit"]:hover { 170 | background: #7A7B92; 171 | color: #ffffff; 172 | } 173 | 174 | input[type="submit"] { 175 | margin: 0px; 176 | font-size: 16px; 177 | font-weight: 600; 178 | width: 150px; 179 | /*text-transform: uppercase;*/ 180 | padding: 10px; 181 | text-decoration: none; 182 | border: none; 183 | cursor: pointer; 184 | -webkit-transition: 250ms linear all; 185 | -moz-transition: 250ms linear all; 186 | transition: 250ms linear all; 187 | background: rgba(99, 167, 241, 0.9); 188 | /*background: #63A7F1;*/ 189 | color: #ffffff; 190 | } 191 | 192 | .alert-box.success { 193 | background-color: #CECECE; 194 | border-color: #A0A0A0; 195 | color: black; 196 | font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; 197 | font-weight: normal; 198 | font-style: normal; 199 | padding: .4rem; 200 | margin-top: 10px; 201 | } 202 | 203 | .description { 204 | color: #DDDDDD; 205 | } 206 | 207 | strong { 208 | color: #FFFFFF; 209 | } 210 | 211 | @media only screen and (min-width: 40.063em) { 212 | .page-wrapper { 213 | position: relative; 214 | padding: 0px; 215 | top: 50%; 216 | 217 | -ms-transform: translate(0%, -50%); /* IE 9 */ 218 | -webkit-transform: translate(0%, -50%); 219 | transform: translate(0%, -50%); 220 | } 221 | } 222 | 223 | @media only screen and (max-width: 40.063em) { 224 | .page-wrapper { 225 | padding-top: 10%; 226 | } 227 | } 228 | 229 | 230 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/archive.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 7 | 8 | 9 |

%s', 'hbd-theme' ), get_the_time(get_option('date_format')) ) ?>

10 | 11 |

%s', 'hbd-theme' ), get_the_time('F Y') ) ?>

12 | 13 |

%s', 'hbd-theme' ), get_the_time('Y') ) ?>

14 | 15 |

16 | 17 | 18 | 19 | 20 | max_num_pages; if ( $total_pages > 1 ) { ?> 21 | 25 | 26 | 27 | 28 | 29 |
> 30 |

31 | 32 | 40 | 41 |
42 | »', 'hbd-theme' ) ); ?> 43 |
44 | 45 |
46 | 47 | | 48 | ' . __('Tagged ', 'hbd-theme' ) . '', ", ", "\n\t\t\t\t\t\t|\n" ) ?> 49 | 50 | |\n\t\t\t\t\t\t", "\n\t\t\t\t\t\n" ) ?> 51 |
52 |
53 | 54 | 55 | 56 | max_num_pages; if ( $total_pages > 1 ) { ?> 57 | 61 | 62 | 63 |
64 |
65 | 66 | 67 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/search.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 7 | 8 |

9 | 10 | max_num_pages; if ( $total_pages > 1 ) { ?> 11 | 15 | 16 | 17 | 18 | 19 |
> 20 |

21 | 22 | post_type == 'post' ) { ?> 23 | 31 | 32 | 33 |
34 | »', 'hbd-theme' ) ); ?> 35 | ' . __( 'Pages:', 'hbd-theme' ) . '&after=
') ?> 36 |
37 | 38 | post_type == 'post' ) { ?> 39 |
40 | 41 | | 42 | ' . __('Tagged ', 'hbd-theme' ) . '', ", ", "\n\t\t\t\t\t\t|\n" ) ?> 43 | 44 | |\n\t\t\t\t\t\t", "\n\t\t\t\t\t\n" ) ?> 45 |
46 | 47 |
48 | 49 | 50 | 51 | max_num_pages; if ( $total_pages > 1 ) { ?> 52 | 56 | 57 | 58 | 59 | 60 |
61 |

62 |
63 |

64 | 65 |
66 |
67 | 68 | 69 | 70 |
71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | East Coast Taiko Conference 2015 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 |

ECTC 2015

19 |
20 |
21 |
22 |
23 |

The 5th annual East Coast Taiko Conference will be held at Cornell University in Ithaca, New York on February 13-15, 2015. Sign up for our mailing list to receive the latest updates on the conference! Look for event and registration details coming this fall!

24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | 32 | 33 | 34 | 35 |
36 |
37 | 38 |
39 |
40 |
41 |
42 |
43 |
44 | 45 | 46 | 47 | 50 | 86 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/topbar.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | 10 |
11 |
12 | 13 |
14 |
15 | 16 | 17 | 18 | 19 |
20 |
21 |
22 |
23 |
24 | 28 |
29 |
30 |
31 |
32 | 53 |
54 |
55 |
56 |
57 |
58 |

Schedule Overview

59 |
60 |
61 |

Friday

62 |

5:00pm - 10:00pm

63 |

7:00pm - 10:00pm

64 |

Saturday

65 |

8:00am - 9:00am

66 |

9:15am - 11:45am

67 |

12:00pm - 1:00pm

68 |

1:15pm - 2:45pm

69 |

3:00pm - 5:30pm

70 |

5:45pm - 6:45pm

71 |

7:00pm - 8:30pm

72 |

8:45pm - 10:45pm

73 |

Sunday

74 |

8:00am - 9:00am

75 |

9:15am - 11:45am

76 |

12:00pm - 12:30pm

77 | 78 |
79 |
80 |

.

81 |

Check-In

82 |

Jam Session

83 |

.

84 |

Breakfast/Welcome

85 |

Workshop #1

86 |

Lunch Break

87 |

Drum Battle

88 |

Workshop #2

89 |

Dinner

90 |

Group Discussion

91 |

ECTC Concert

92 |

.

93 |

Breakfast

94 |

Workshop #3

95 |

Closing Remarks

96 |
97 |
98 |
99 | 100 |
101 |

Announcements

102 |

Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong. Eiusmod swine spare ribs reprehenderit culpa. Boudin aliqua adipisicing rump corned beef.

103 | 104 |
105 | 106 |

Featured Event

107 |

Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong. Eiusmod swine spare ribs reprehenderit culpa. Boudin aliqua adipisicing rump corned beef.

108 | 109 | 110 |
111 | 112 | 113 | 114 |
115 | 116 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 133 | 134 | 144 | 145 | 146 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/functions.php: -------------------------------------------------------------------------------- 1 | 25 |
  • > 26 |
    27 |
    | Permalink', 'hbd-theme'), 28 | get_comment_date(), 29 | get_comment_time(), 30 | '#comment-' . get_comment_ID() ); 31 | edit_comment_link(__('Edit', 'hbd-theme'), ' | ', ''); ?>
    32 | comment_approved == '0') _e("\t\t\t\t\tYour comment is awaiting moderation.\n", 'hbd-theme') ?> 33 |
    34 | 35 |
    36 | __('Reply','hbd-theme'), 40 | 'login_text' => __('Log in to reply.','hbd-theme'), 41 | 'depth' => $depth, 42 | 'before' => '' 44 | ))); 45 | endif; 46 | ?> 47 | 53 |
  • > 54 |
    | ', ''); ?>
    59 | comment_approved == '0') _e('\t\t\t\t\tYour trackback is awaiting moderation.\n', 'hbd-theme') ?> 60 |
    61 | 62 |
    63 | ]* class=[^>]+>', $commenter ) ) { 69 | $commenter = ereg_replace( '(]* class=[\'"]?)', '\\1url ' , $commenter ); 70 | } else { 71 | $commenter = ereg_replace( '(' . $commenter . ''; 76 | } // end commenter_link 77 | 78 | // For category lists on category archives: Returns other categories except the current one (redundant) 79 | function cats_meow($glue) { 80 | $current_cat = single_cat_title( '', false ); 81 | $separator = "\n"; 82 | $cats = explode( $separator, get_the_category_list($separator) ); 83 | foreach ( $cats as $i => $str ) { 84 | if ( strstr( $str, ">$current_cat<" ) ) { 85 | unset($cats[$i]); 86 | break; 87 | } 88 | } 89 | if ( empty($cats) ) 90 | return false; 91 | 92 | return trim(join( $glue, $cats )); 93 | } // end cats_meow 94 | 95 | // For tag lists on tag archives: Returns other tags except the current one (redundant) 96 | function tag_ur_it($glue) { 97 | $current_tag = single_tag_title( '', '', false ); 98 | $separator = "\n"; 99 | $tags = explode( $separator, get_the_tag_list( "", "$separator", "" ) ); 100 | foreach ( $tags as $i => $str ) { 101 | if ( strstr( $str, ">$current_tag<" ) ) { 102 | unset($tags[$i]); 103 | break; 104 | } 105 | } 106 | if ( empty($tags) ) 107 | return false; 108 | 109 | return trim(join( $glue, $tags )); 110 | } // end tag_ur_it 111 | 112 | // Register widgetized areas 113 | function theme_widgets_init() { 114 | // Area 1 115 | register_sidebar( array ( 116 | 'name' => 'Primary Widget Area', 117 | 'id' => 'primary_widget_area', 118 | 'before_widget' => '
  • ', 119 | 'after_widget' => "
  • ", 120 | 'before_title' => '

    ', 121 | 'after_title' => '

    ', 122 | ) ); 123 | 124 | // Area 2 125 | register_sidebar( array ( 126 | 'name' => 'Secondary Widget Area', 127 | 'id' => 'secondary_widget_area', 128 | 'before_widget' => '
  • ', 129 | 'after_widget' => "
  • ", 130 | 'before_title' => '

    ', 131 | 'after_title' => '

    ', 132 | ) ); 133 | } // end theme_widgets_init 134 | 135 | add_action( 'init', 'theme_widgets_init' ); 136 | 137 | $preset_widgets = array ( 138 | 'primary_widget_area' => array( 'search', 'pages', 'categories', 'archives' ), 139 | 'secondary_widget_area' => array( 'links', 'meta' ) 140 | ); 141 | if ( isset( $_GET['activated'] ) ) { 142 | update_option( 'sidebars_widgets', $preset_widgets ); 143 | } 144 | // update_option( 'sidebars_widgets', NULL ); 145 | 146 | // Check for static widgets in widget-ready areas 147 | function is_sidebar_active( $index ){ 148 | global $wp_registered_sidebars; 149 | 150 | $widgetcolums = wp_get_sidebars_widgets(); 151 | 152 | if ($widgetcolums[$index]) return true; 153 | 154 | return false; 155 | } // end is_sidebar_active 156 | ?> -------------------------------------------------------------------------------- /js/foundation/foundation.tab.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.tab = { 5 | name : 'tab', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | active_class: 'active', 11 | callback : function () {}, 12 | deep_linking: false, 13 | scroll_to_content: true, 14 | is_hover: false 15 | }, 16 | 17 | default_tab_hashes: [], 18 | 19 | init : function (scope, method, options) { 20 | var self = this, 21 | S = this.S; 22 | 23 | this.bindings(method, options); 24 | this.handle_location_hash_change(); 25 | 26 | // Store the default active tabs which will be referenced when the 27 | // location hash is absent, as in the case of navigating the tabs and 28 | // returning to the first viewing via the browser Back button. 29 | S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () { 30 | self.default_tab_hashes.push(this.hash); 31 | }); 32 | }, 33 | 34 | events : function () { 35 | var self = this, 36 | S = this.S; 37 | 38 | S(this.scope) 39 | .off('.tab') 40 | // Click event: tab title 41 | .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) { 42 | var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init'); 43 | if (!settings.is_hover || Modernizr.touch) { 44 | e.preventDefault(); 45 | e.stopPropagation(); 46 | self.toggle_active_tab(S(this).parent()); 47 | } 48 | }) 49 | // Hover event: tab title 50 | .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) { 51 | var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init'); 52 | if (settings.is_hover) self.toggle_active_tab(S(this).parent()); 53 | }); 54 | 55 | // Location hash change event 56 | S(window).on('hashchange.fndtn.tab', function (e) { 57 | e.preventDefault(); 58 | self.handle_location_hash_change(); 59 | }); 60 | }, 61 | 62 | handle_location_hash_change : function () { 63 | var self = this, 64 | S = this.S; 65 | 66 | S('[' + this.attr_name() + ']', this.scope).each(function () { 67 | var settings = S(this).data(self.attr_name(true) + '-init'); 68 | if (settings.deep_linking) { 69 | // Match the location hash to a label 70 | var hash = self.scope.location.hash; 71 | if (hash != '') { 72 | // Check whether the location hash references a tab content div or 73 | // another element on the page (inside or outside the tab content div) 74 | var hash_element = S(hash); 75 | if (hash_element.hasClass('content') && hash_element.parent().hasClass('tab-content')) { 76 | // Tab content div 77 | self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent()); 78 | } else { 79 | // Not the tab content div. If inside the tab content, find the 80 | // containing tab and toggle it as active. 81 | var hash_tab_container_id = hash_element.closest('.content').attr('id'); 82 | if (hash_tab_container_id != undefined) { 83 | self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash); 84 | } 85 | } 86 | } else { 87 | // Reference the default tab hashes which were initialized in the init function 88 | for (var ind in self.default_tab_hashes) { 89 | self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent()); 90 | } 91 | } 92 | } 93 | }); 94 | }, 95 | 96 | toggle_active_tab: function (tab, location_hash) { 97 | var S = this.S, 98 | tabs = tab.closest('[' + this.attr_name() + ']'), 99 | anchor = tab.children('a').first(), 100 | target_hash = '#' + anchor.attr('href').split('#')[1], 101 | target = S(target_hash), 102 | siblings = tab.siblings(), 103 | settings = tabs.data(this.attr_name(true) + '-init'); 104 | 105 | // allow usage of data-tab-content attribute instead of href 106 | if (S(this).data(this.data_attr('tab-content'))) { 107 | target_hash = '#' + S(this).data(this.data_attr('tab-content')).split('#')[1]; 108 | target = S(target_hash); 109 | } 110 | 111 | if (settings.deep_linking) { 112 | // Get the scroll Y position prior to moving to the hash ID 113 | var cur_ypos = $('body,html').scrollTop(); 114 | 115 | // Update the location hash to preserve browser history 116 | // Note that the hash does not need to correspond to the 117 | // tab content ID anchor; it can be an ID inside or outside of the tab 118 | // content div. 119 | if (location_hash != undefined) { 120 | window.location.hash = location_hash; 121 | } else { 122 | window.location.hash = target_hash; 123 | } 124 | 125 | if (settings.scroll_to_content) { 126 | // If the user is requesting the content of a tab, then scroll to the 127 | // top of the title area; otherwise, scroll to the element within 128 | // the content area as defined by the hash value. 129 | if (location_hash == undefined || location_hash == target_hash) { 130 | tab.parent()[0].scrollIntoView(); 131 | } else { 132 | S(target_hash)[0].scrollIntoView(); 133 | } 134 | } else { 135 | // Adjust the scrollbar to the Y position prior to setting the hash 136 | // Only do this for the tab content anchor, otherwise there will be 137 | // conflicts with in-tab anchor links nested in the tab-content div 138 | if (location_hash == undefined || location_hash == target_hash) { 139 | $('body,html').scrollTop(cur_ypos); 140 | } 141 | } 142 | } 143 | 144 | // WARNING: The activation and deactivation of the tab content must 145 | // occur after the deep linking in order to properly refresh the browser 146 | // window (notably in Chrome). 147 | tab.addClass(settings.active_class).triggerHandler('opened'); 148 | siblings.removeClass(settings.active_class); 149 | target.siblings().removeClass(settings.active_class).end().addClass(settings.active_class); 150 | settings.callback(tab); 151 | target.triggerHandler('toggled', [tab]); 152 | tabs.triggerHandler('toggled', [target]); 153 | }, 154 | 155 | data_attr: function (str) { 156 | if (this.namespace.length > 0) { 157 | return this.namespace + '-' + str; 158 | } 159 | 160 | return str; 161 | }, 162 | 163 | off : function () {}, 164 | 165 | reflow : function () {} 166 | }; 167 | }(jQuery, window, window.document)); 168 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/foundation/foundation.tab.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.tab = { 5 | name : 'tab', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | active_class: 'active', 11 | callback : function () {}, 12 | deep_linking: false, 13 | scroll_to_content: true, 14 | is_hover: false 15 | }, 16 | 17 | default_tab_hashes: [], 18 | 19 | init : function (scope, method, options) { 20 | var self = this, 21 | S = this.S; 22 | 23 | this.bindings(method, options); 24 | this.handle_location_hash_change(); 25 | 26 | // Store the default active tabs which will be referenced when the 27 | // location hash is absent, as in the case of navigating the tabs and 28 | // returning to the first viewing via the browser Back button. 29 | S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () { 30 | self.default_tab_hashes.push(this.hash); 31 | }); 32 | }, 33 | 34 | events : function () { 35 | var self = this, 36 | S = this.S; 37 | 38 | S(this.scope) 39 | .off('.tab') 40 | // Click event: tab title 41 | .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) { 42 | var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init'); 43 | if (!settings.is_hover || Modernizr.touch) { 44 | e.preventDefault(); 45 | e.stopPropagation(); 46 | self.toggle_active_tab(S(this).parent()); 47 | } 48 | }) 49 | // Hover event: tab title 50 | .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) { 51 | var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init'); 52 | if (settings.is_hover) self.toggle_active_tab(S(this).parent()); 53 | }); 54 | 55 | // Location hash change event 56 | S(window).on('hashchange.fndtn.tab', function (e) { 57 | e.preventDefault(); 58 | self.handle_location_hash_change(); 59 | }); 60 | }, 61 | 62 | handle_location_hash_change : function () { 63 | var self = this, 64 | S = this.S; 65 | 66 | S('[' + this.attr_name() + ']', this.scope).each(function () { 67 | var settings = S(this).data(self.attr_name(true) + '-init'); 68 | if (settings.deep_linking) { 69 | // Match the location hash to a label 70 | var hash = self.scope.location.hash; 71 | if (hash != '') { 72 | // Check whether the location hash references a tab content div or 73 | // another element on the page (inside or outside the tab content div) 74 | var hash_element = S(hash); 75 | if (hash_element.hasClass('content') && hash_element.parent().hasClass('tab-content')) { 76 | // Tab content div 77 | self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent()); 78 | } else { 79 | // Not the tab content div. If inside the tab content, find the 80 | // containing tab and toggle it as active. 81 | var hash_tab_container_id = hash_element.closest('.content').attr('id'); 82 | if (hash_tab_container_id != undefined) { 83 | self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash); 84 | } 85 | } 86 | } else { 87 | // Reference the default tab hashes which were initialized in the init function 88 | for (var ind in self.default_tab_hashes) { 89 | self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent()); 90 | } 91 | } 92 | } 93 | }); 94 | }, 95 | 96 | toggle_active_tab: function (tab, location_hash) { 97 | var S = this.S, 98 | tabs = tab.closest('[' + this.attr_name() + ']'), 99 | anchor = tab.children('a').first(), 100 | target_hash = '#' + anchor.attr('href').split('#')[1], 101 | target = S(target_hash), 102 | siblings = tab.siblings(), 103 | settings = tabs.data(this.attr_name(true) + '-init'); 104 | 105 | // allow usage of data-tab-content attribute instead of href 106 | if (S(this).data(this.data_attr('tab-content'))) { 107 | target_hash = '#' + S(this).data(this.data_attr('tab-content')).split('#')[1]; 108 | target = S(target_hash); 109 | } 110 | 111 | if (settings.deep_linking) { 112 | // Get the scroll Y position prior to moving to the hash ID 113 | var cur_ypos = $('body,html').scrollTop(); 114 | 115 | // Update the location hash to preserve browser history 116 | // Note that the hash does not need to correspond to the 117 | // tab content ID anchor; it can be an ID inside or outside of the tab 118 | // content div. 119 | if (location_hash != undefined) { 120 | window.location.hash = location_hash; 121 | } else { 122 | window.location.hash = target_hash; 123 | } 124 | 125 | if (settings.scroll_to_content) { 126 | // If the user is requesting the content of a tab, then scroll to the 127 | // top of the title area; otherwise, scroll to the element within 128 | // the content area as defined by the hash value. 129 | if (location_hash == undefined || location_hash == target_hash) { 130 | tab.parent()[0].scrollIntoView(); 131 | } else { 132 | S(target_hash)[0].scrollIntoView(); 133 | } 134 | } else { 135 | // Adjust the scrollbar to the Y position prior to setting the hash 136 | // Only do this for the tab content anchor, otherwise there will be 137 | // conflicts with in-tab anchor links nested in the tab-content div 138 | if (location_hash == undefined || location_hash == target_hash) { 139 | $('body,html').scrollTop(cur_ypos); 140 | } 141 | } 142 | } 143 | 144 | // WARNING: The activation and deactivation of the tab content must 145 | // occur after the deep linking in order to properly refresh the browser 146 | // window (notably in Chrome). 147 | tab.addClass(settings.active_class).triggerHandler('opened'); 148 | siblings.removeClass(settings.active_class); 149 | target.siblings().removeClass(settings.active_class).end().addClass(settings.active_class); 150 | settings.callback(tab); 151 | target.triggerHandler('toggled', [tab]); 152 | tabs.triggerHandler('toggled', [target]); 153 | }, 154 | 155 | data_attr: function (str) { 156 | if (this.namespace.length > 0) { 157 | return this.namespace + '-' + str; 158 | } 159 | 160 | return str; 161 | }, 162 | 163 | off : function () {}, 164 | 165 | reflow : function () {} 166 | }; 167 | }(jQuery, window, window.document)); 168 | -------------------------------------------------------------------------------- /js/foundation/foundation.magellan.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs['magellan-expedition'] = { 5 | name : 'magellan-expedition', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | active_class: 'active', 11 | threshold: 0, // pixels from the top of the expedition for it to become fixes 12 | destination_threshold: 20, // pixels from the top of destination for it to be considered active 13 | throttle_delay: 30, // calculation throttling to increase framerate 14 | fixed_top: 0 // top distance in pixels assigend to the fixed element on scroll 15 | }, 16 | 17 | init : function (scope, method, options) { 18 | Foundation.inherit(this, 'throttle'); 19 | this.bindings(method, options); 20 | }, 21 | 22 | events : function () { 23 | var self = this, 24 | S = self.S, 25 | settings = self.settings; 26 | 27 | // initialize expedition offset 28 | self.set_expedition_position(); 29 | 30 | S(self.scope) 31 | .off('.magellan') 32 | .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href^="#"]', function (e) { 33 | e.preventDefault(); 34 | var expedition = $(this).closest('[' + self.attr_name() + ']'), 35 | settings = expedition.data('magellan-expedition-init'), 36 | hash = this.hash.split('#').join(''), 37 | target = $("a[name='"+hash+"']"); 38 | 39 | if (target.length === 0) { 40 | target = $('#'+hash); 41 | } 42 | 43 | // Account for expedition height if fixed position 44 | var scroll_top = target.offset().top; 45 | scroll_top = scroll_top - expedition.outerHeight(); 46 | 47 | $('html, body').stop().animate({ 48 | 'scrollTop': scroll_top 49 | }, 700, 'swing', function () { 50 | if(history.pushState) { 51 | history.pushState(null, null, '#'+hash); 52 | } 53 | else { 54 | location.hash = '#'+hash; 55 | } 56 | }); 57 | }) 58 | .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay)); 59 | 60 | $(window) 61 | .on('resize.fndtn.magellan', self.throttle(this.set_expedition_position.bind(this), settings.throttle_delay)); 62 | }, 63 | 64 | check_for_arrivals : function() { 65 | var self = this; 66 | self.update_arrivals(); 67 | self.update_expedition_positions(); 68 | }, 69 | 70 | set_expedition_position : function() { 71 | var self = this; 72 | $('[' + this.attr_name() + '=fixed]', self.scope).each(function(idx, el) { 73 | var expedition = $(this), 74 | styles = expedition.attr('styles'), // save styles 75 | top_offset; 76 | 77 | expedition.attr('style', ''); 78 | top_offset = expedition.offset().top + self.settings.threshold; 79 | 80 | expedition.data(self.data_attr('magellan-top-offset'), top_offset); 81 | expedition.attr('style', styles); 82 | }); 83 | }, 84 | 85 | update_expedition_positions : function() { 86 | var self = this, 87 | window_top_offset = $(window).scrollTop(); 88 | 89 | $('[' + this.attr_name() + '=fixed]', self.scope).each(function() { 90 | var expedition = $(this), 91 | top_offset = expedition.data('magellan-top-offset'); 92 | 93 | if (window_top_offset >= top_offset) { 94 | // Placeholder allows height calculations to be consistent even when 95 | // appearing to switch between fixed/non-fixed placement 96 | var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']'); 97 | if (placeholder.length === 0) { 98 | placeholder = expedition.clone(); 99 | placeholder.removeAttr(self.attr_name()); 100 | placeholder.attr(self.add_namespace('data-magellan-expedition-clone'),''); 101 | expedition.before(placeholder); 102 | } 103 | expedition.css({position:'fixed', top: self.settings.fixed_top}); 104 | } else { 105 | expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove(); 106 | expedition.attr('style','').removeClass('fixed'); 107 | } 108 | }); 109 | }, 110 | 111 | update_arrivals : function() { 112 | var self = this, 113 | window_top_offset = $(window).scrollTop(); 114 | 115 | $('[' + this.attr_name() + ']', self.scope).each(function() { 116 | var expedition = $(this), 117 | settings = expedition.data(self.attr_name(true) + '-init'), 118 | offsets = self.offsets(expedition, window_top_offset), 119 | arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'), 120 | active_item = false; 121 | offsets.each(function(idx, item) { 122 | if (item.viewport_offset >= item.top_offset) { 123 | var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'); 124 | arrivals.not(item.arrival).removeClass(settings.active_class); 125 | item.arrival.addClass(settings.active_class); 126 | active_item = true; 127 | return true; 128 | } 129 | }); 130 | 131 | if (!active_item) arrivals.removeClass(settings.active_class); 132 | }); 133 | }, 134 | 135 | offsets : function(expedition, window_offset) { 136 | var self = this, 137 | settings = expedition.data(self.attr_name(true) + '-init'), 138 | viewport_offset = window_offset; 139 | 140 | return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function(idx, el) { 141 | var name = $(this).data(self.data_attr('magellan-arrival')), 142 | dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']'); 143 | if (dest.length > 0) { 144 | var top_offset = dest.offset().top - settings.destination_threshold - expedition.outerHeight(); 145 | return { 146 | destination : dest, 147 | arrival : $(this), 148 | top_offset : top_offset, 149 | viewport_offset : viewport_offset 150 | } 151 | } 152 | }).sort(function(a, b) { 153 | if (a.top_offset < b.top_offset) return -1; 154 | if (a.top_offset > b.top_offset) return 1; 155 | return 0; 156 | }); 157 | }, 158 | 159 | data_attr: function (str) { 160 | if (this.namespace.length > 0) { 161 | return this.namespace + '-' + str; 162 | } 163 | 164 | return str; 165 | }, 166 | 167 | off : function () { 168 | this.S(this.scope).off('.magellan'); 169 | this.S(window).off('.magellan'); 170 | }, 171 | 172 | reflow : function () { 173 | var self = this; 174 | // remove placeholder expeditions used for height calculation purposes 175 | $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove(); 176 | } 177 | }; 178 | }(jQuery, window, window.document)); 179 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/foundation/foundation.magellan.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs['magellan-expedition'] = { 5 | name : 'magellan-expedition', 6 | 7 | version : '5.2.3', 8 | 9 | settings : { 10 | active_class: 'active', 11 | threshold: 0, // pixels from the top of the expedition for it to become fixes 12 | destination_threshold: 20, // pixels from the top of destination for it to be considered active 13 | throttle_delay: 30, // calculation throttling to increase framerate 14 | fixed_top: 0 // top distance in pixels assigend to the fixed element on scroll 15 | }, 16 | 17 | init : function (scope, method, options) { 18 | Foundation.inherit(this, 'throttle'); 19 | this.bindings(method, options); 20 | }, 21 | 22 | events : function () { 23 | var self = this, 24 | S = self.S, 25 | settings = self.settings; 26 | 27 | // initialize expedition offset 28 | self.set_expedition_position(); 29 | 30 | S(self.scope) 31 | .off('.magellan') 32 | .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href^="#"]', function (e) { 33 | e.preventDefault(); 34 | var expedition = $(this).closest('[' + self.attr_name() + ']'), 35 | settings = expedition.data('magellan-expedition-init'), 36 | hash = this.hash.split('#').join(''), 37 | target = $("a[name='"+hash+"']"); 38 | 39 | if (target.length === 0) { 40 | target = $('#'+hash); 41 | } 42 | 43 | // Account for expedition height if fixed position 44 | var scroll_top = target.offset().top; 45 | scroll_top = scroll_top - expedition.outerHeight(); 46 | 47 | $('html, body').stop().animate({ 48 | 'scrollTop': scroll_top 49 | }, 700, 'swing', function () { 50 | if(history.pushState) { 51 | history.pushState(null, null, '#'+hash); 52 | } 53 | else { 54 | location.hash = '#'+hash; 55 | } 56 | }); 57 | }) 58 | .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay)); 59 | 60 | $(window) 61 | .on('resize.fndtn.magellan', self.throttle(this.set_expedition_position.bind(this), settings.throttle_delay)); 62 | }, 63 | 64 | check_for_arrivals : function() { 65 | var self = this; 66 | self.update_arrivals(); 67 | self.update_expedition_positions(); 68 | }, 69 | 70 | set_expedition_position : function() { 71 | var self = this; 72 | $('[' + this.attr_name() + '=fixed]', self.scope).each(function(idx, el) { 73 | var expedition = $(this), 74 | styles = expedition.attr('styles'), // save styles 75 | top_offset; 76 | 77 | expedition.attr('style', ''); 78 | top_offset = expedition.offset().top + self.settings.threshold; 79 | 80 | expedition.data(self.data_attr('magellan-top-offset'), top_offset); 81 | expedition.attr('style', styles); 82 | }); 83 | }, 84 | 85 | update_expedition_positions : function() { 86 | var self = this, 87 | window_top_offset = $(window).scrollTop(); 88 | 89 | $('[' + this.attr_name() + '=fixed]', self.scope).each(function() { 90 | var expedition = $(this), 91 | top_offset = expedition.data('magellan-top-offset'); 92 | 93 | if (window_top_offset >= top_offset) { 94 | // Placeholder allows height calculations to be consistent even when 95 | // appearing to switch between fixed/non-fixed placement 96 | var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']'); 97 | if (placeholder.length === 0) { 98 | placeholder = expedition.clone(); 99 | placeholder.removeAttr(self.attr_name()); 100 | placeholder.attr(self.add_namespace('data-magellan-expedition-clone'),''); 101 | expedition.before(placeholder); 102 | } 103 | expedition.css({position:'fixed', top: self.settings.fixed_top}); 104 | } else { 105 | expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove(); 106 | expedition.attr('style','').removeClass('fixed'); 107 | } 108 | }); 109 | }, 110 | 111 | update_arrivals : function() { 112 | var self = this, 113 | window_top_offset = $(window).scrollTop(); 114 | 115 | $('[' + this.attr_name() + ']', self.scope).each(function() { 116 | var expedition = $(this), 117 | settings = expedition.data(self.attr_name(true) + '-init'), 118 | offsets = self.offsets(expedition, window_top_offset), 119 | arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'), 120 | active_item = false; 121 | offsets.each(function(idx, item) { 122 | if (item.viewport_offset >= item.top_offset) { 123 | var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'); 124 | arrivals.not(item.arrival).removeClass(settings.active_class); 125 | item.arrival.addClass(settings.active_class); 126 | active_item = true; 127 | return true; 128 | } 129 | }); 130 | 131 | if (!active_item) arrivals.removeClass(settings.active_class); 132 | }); 133 | }, 134 | 135 | offsets : function(expedition, window_offset) { 136 | var self = this, 137 | settings = expedition.data(self.attr_name(true) + '-init'), 138 | viewport_offset = window_offset; 139 | 140 | return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function(idx, el) { 141 | var name = $(this).data(self.data_attr('magellan-arrival')), 142 | dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']'); 143 | if (dest.length > 0) { 144 | var top_offset = dest.offset().top - settings.destination_threshold - expedition.outerHeight(); 145 | return { 146 | destination : dest, 147 | arrival : $(this), 148 | top_offset : top_offset, 149 | viewport_offset : viewport_offset 150 | } 151 | } 152 | }).sort(function(a, b) { 153 | if (a.top_offset < b.top_offset) return -1; 154 | if (a.top_offset > b.top_offset) return 1; 155 | return 0; 156 | }); 157 | }, 158 | 159 | data_attr: function (str) { 160 | if (this.namespace.length > 0) { 161 | return this.namespace + '-' + str; 162 | } 163 | 164 | return str; 165 | }, 166 | 167 | off : function () { 168 | this.S(this.scope).off('.magellan'); 169 | this.S(window).off('.magellan'); 170 | }, 171 | 172 | reflow : function () { 173 | var self = this; 174 | // remove placeholder expeditions used for height calculation purposes 175 | $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove(); 176 | } 177 | }; 178 | }(jQuery, window, window.document)); 179 | -------------------------------------------------------------------------------- /js/foundation/foundation.slider.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.slider = { 5 | name : 'slider', 6 | 7 | version : '5.2.3', 8 | 9 | settings: { 10 | start: 0, 11 | end: 100, 12 | step: 1, 13 | initial: null, 14 | display_selector: '', 15 | on_change: function(){} 16 | }, 17 | 18 | cache : {}, 19 | 20 | init : function (scope, method, options) { 21 | Foundation.inherit(this,'throttle'); 22 | this.bindings(method, options); 23 | this.reflow(); 24 | }, 25 | 26 | events : function() { 27 | var self = this; 28 | 29 | $(this.scope) 30 | .off('.slider') 31 | .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider', 32 | '[' + self.attr_name() + '] .range-slider-handle', function(e) { 33 | if (!self.cache.active) { 34 | e.preventDefault(); 35 | self.set_active_slider($(e.target)); 36 | } 37 | }) 38 | .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function(e) { 39 | if (!!self.cache.active) { 40 | e.preventDefault(); 41 | self.calculate_position(self.cache.active, e.pageX || e.originalEvent.clientX || e.originalEvent.touches[0].clientX || e.currentPoint.x); 42 | } 43 | }) 44 | .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function(e) { 45 | self.remove_active_slider(); 46 | }) 47 | .on('change.fndtn.slider', function(e) { 48 | self.settings.on_change(); 49 | }); 50 | 51 | self.S(window) 52 | .on('resize.fndtn.slider', self.throttle(function(e) { 53 | self.reflow(); 54 | }, 300)); 55 | }, 56 | 57 | set_active_slider : function($handle) { 58 | this.cache.active = $handle; 59 | }, 60 | 61 | remove_active_slider : function() { 62 | this.cache.active = null; 63 | }, 64 | 65 | calculate_position : function($handle, cursor_x) { 66 | var self = this, 67 | settings = $.extend({}, self.settings, self.data_options($handle.parent())), 68 | handle_w = $.data($handle[0], 'handle_w'), 69 | handle_o = $.data($handle[0], 'handle_o'), 70 | bar_w = $.data($handle[0], 'bar_w'), 71 | bar_o = $.data($handle[0], 'bar_o'); 72 | 73 | requestAnimationFrame(function(){ 74 | var pct; 75 | 76 | if (Foundation.rtl) { 77 | pct = self.limit_to(((bar_o+bar_w-cursor_x)/bar_w),0,1); 78 | } else { 79 | pct = self.limit_to(((cursor_x-bar_o)/bar_w),0,1); 80 | } 81 | 82 | var norm = self.normalized_value(pct, settings.start, settings.end, settings.step); 83 | 84 | self.set_ui($handle, norm); 85 | }); 86 | }, 87 | 88 | set_ui : function($handle, value) { 89 | var settings = $.extend({}, this.settings, this.data_options($handle.parent())), 90 | handle_w = $.data($handle[0], 'handle_w'), 91 | bar_w = $.data($handle[0], 'bar_w'), 92 | norm_pct = this.normalized_percentage(value, settings.start, settings.end), 93 | handle_offset = norm_pct*(bar_w-handle_w)-1, 94 | progress_bar_width = norm_pct*100; 95 | 96 | if (Foundation.rtl) { 97 | handle_offset = -handle_offset; 98 | } 99 | 100 | this.set_translate($handle, handle_offset); 101 | $handle.siblings('.range-slider-active-segment').css('width', progress_bar_width+'%'); 102 | 103 | $handle.parent().attr(this.attr_name(), value); 104 | $handle.parent().trigger('change'); 105 | 106 | $handle.parent().children('input[type=hidden]').val(value); 107 | 108 | if (settings.input_id != '') { 109 | $(settings.display_selector).each(function(){ 110 | if (this.hasOwnProperty('value')) { 111 | $(this).val(value); 112 | } else { 113 | $(this).text(value); 114 | } 115 | }); 116 | } 117 | 118 | }, 119 | 120 | normalized_percentage : function(val, start, end) { 121 | return (val - start)/(end - start); 122 | }, 123 | 124 | normalized_value : function(val, start, end, step) { 125 | var range = end - start, 126 | point = val*range, 127 | mod = (point-(point%step)) / step, 128 | rem = point % step, 129 | round = ( rem >= step*0.5 ? step : 0); 130 | return (mod*step + round) + start; 131 | }, 132 | 133 | set_translate : function(ele, offset, vertical) { 134 | if (vertical) { 135 | $(ele) 136 | .css('-webkit-transform', 'translateY('+offset+'px)') 137 | .css('-moz-transform', 'translateY('+offset+'px)') 138 | .css('-ms-transform', 'translateY('+offset+'px)') 139 | .css('-o-transform', 'translateY('+offset+'px)') 140 | .css('transform', 'translateY('+offset+'px)'); 141 | } else { 142 | $(ele) 143 | .css('-webkit-transform', 'translateX('+offset+'px)') 144 | .css('-moz-transform', 'translateX('+offset+'px)') 145 | .css('-ms-transform', 'translateX('+offset+'px)') 146 | .css('-o-transform', 'translateX('+offset+'px)') 147 | .css('transform', 'translateX('+offset+'px)'); 148 | } 149 | }, 150 | 151 | limit_to : function(val, min, max) { 152 | return Math.min(Math.max(val, min), max); 153 | }, 154 | 155 | initialize_settings : function(handle) { 156 | $.data(handle, 'bar', $(handle).parent()); 157 | $.data(handle, 'bar_o', $(handle).parent().offset().left); 158 | $.data(handle, 'bar_w', $(handle).parent().outerWidth()); 159 | $.data(handle, 'handle_o', $(handle).offset().left); 160 | $.data(handle, 'handle_w', $(handle).outerWidth()); 161 | $.data(handle, 'settings', $.extend({}, this.settings, this.data_options($(handle).parent()))); 162 | }, 163 | 164 | set_initial_position : function($ele) { 165 | var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'), 166 | initial = (!!settings.initial ? settings.initial : Math.floor((settings.end-settings.start)*0.5/settings.step)*settings.step+settings.start), 167 | $handle = $ele.children('.range-slider-handle'); 168 | this.set_ui($handle, initial); 169 | }, 170 | 171 | set_value : function(value) { 172 | var self = this; 173 | $('[' + self.attr_name() + ']', this.scope).each(function(){ 174 | $(this).attr(self.attr_name(), value); 175 | }); 176 | if (!!$(this.scope).attr(self.attr_name())) { 177 | $(this.scope).attr(self.attr_name(), value); 178 | } 179 | self.reflow(); 180 | }, 181 | 182 | reflow : function() { 183 | var self = this; 184 | self.S('[' + this.attr_name() + ']').each(function() { 185 | var handle = $(this).children('.range-slider-handle')[0], 186 | val = $(this).attr(self.attr_name()); 187 | self.initialize_settings(handle); 188 | 189 | if (val) { 190 | self.set_ui($(handle), parseFloat(val)); 191 | } else { 192 | self.set_initial_position($(this)); 193 | } 194 | }); 195 | } 196 | 197 | }; 198 | 199 | }(jQuery, window, window.document)); 200 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/foundation/foundation.slider.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.slider = { 5 | name : 'slider', 6 | 7 | version : '5.2.3', 8 | 9 | settings: { 10 | start: 0, 11 | end: 100, 12 | step: 1, 13 | initial: null, 14 | display_selector: '', 15 | on_change: function(){} 16 | }, 17 | 18 | cache : {}, 19 | 20 | init : function (scope, method, options) { 21 | Foundation.inherit(this,'throttle'); 22 | this.bindings(method, options); 23 | this.reflow(); 24 | }, 25 | 26 | events : function() { 27 | var self = this; 28 | 29 | $(this.scope) 30 | .off('.slider') 31 | .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider', 32 | '[' + self.attr_name() + '] .range-slider-handle', function(e) { 33 | if (!self.cache.active) { 34 | e.preventDefault(); 35 | self.set_active_slider($(e.target)); 36 | } 37 | }) 38 | .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function(e) { 39 | if (!!self.cache.active) { 40 | e.preventDefault(); 41 | self.calculate_position(self.cache.active, e.pageX || e.originalEvent.clientX || e.originalEvent.touches[0].clientX || e.currentPoint.x); 42 | } 43 | }) 44 | .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function(e) { 45 | self.remove_active_slider(); 46 | }) 47 | .on('change.fndtn.slider', function(e) { 48 | self.settings.on_change(); 49 | }); 50 | 51 | self.S(window) 52 | .on('resize.fndtn.slider', self.throttle(function(e) { 53 | self.reflow(); 54 | }, 300)); 55 | }, 56 | 57 | set_active_slider : function($handle) { 58 | this.cache.active = $handle; 59 | }, 60 | 61 | remove_active_slider : function() { 62 | this.cache.active = null; 63 | }, 64 | 65 | calculate_position : function($handle, cursor_x) { 66 | var self = this, 67 | settings = $.extend({}, self.settings, self.data_options($handle.parent())), 68 | handle_w = $.data($handle[0], 'handle_w'), 69 | handle_o = $.data($handle[0], 'handle_o'), 70 | bar_w = $.data($handle[0], 'bar_w'), 71 | bar_o = $.data($handle[0], 'bar_o'); 72 | 73 | requestAnimationFrame(function(){ 74 | var pct; 75 | 76 | if (Foundation.rtl) { 77 | pct = self.limit_to(((bar_o+bar_w-cursor_x)/bar_w),0,1); 78 | } else { 79 | pct = self.limit_to(((cursor_x-bar_o)/bar_w),0,1); 80 | } 81 | 82 | var norm = self.normalized_value(pct, settings.start, settings.end, settings.step); 83 | 84 | self.set_ui($handle, norm); 85 | }); 86 | }, 87 | 88 | set_ui : function($handle, value) { 89 | var settings = $.extend({}, this.settings, this.data_options($handle.parent())), 90 | handle_w = $.data($handle[0], 'handle_w'), 91 | bar_w = $.data($handle[0], 'bar_w'), 92 | norm_pct = this.normalized_percentage(value, settings.start, settings.end), 93 | handle_offset = norm_pct*(bar_w-handle_w)-1, 94 | progress_bar_width = norm_pct*100; 95 | 96 | if (Foundation.rtl) { 97 | handle_offset = -handle_offset; 98 | } 99 | 100 | this.set_translate($handle, handle_offset); 101 | $handle.siblings('.range-slider-active-segment').css('width', progress_bar_width+'%'); 102 | 103 | $handle.parent().attr(this.attr_name(), value); 104 | $handle.parent().trigger('change'); 105 | 106 | $handle.parent().children('input[type=hidden]').val(value); 107 | 108 | if (settings.input_id != '') { 109 | $(settings.display_selector).each(function(){ 110 | if (this.hasOwnProperty('value')) { 111 | $(this).val(value); 112 | } else { 113 | $(this).text(value); 114 | } 115 | }); 116 | } 117 | 118 | }, 119 | 120 | normalized_percentage : function(val, start, end) { 121 | return (val - start)/(end - start); 122 | }, 123 | 124 | normalized_value : function(val, start, end, step) { 125 | var range = end - start, 126 | point = val*range, 127 | mod = (point-(point%step)) / step, 128 | rem = point % step, 129 | round = ( rem >= step*0.5 ? step : 0); 130 | return (mod*step + round) + start; 131 | }, 132 | 133 | set_translate : function(ele, offset, vertical) { 134 | if (vertical) { 135 | $(ele) 136 | .css('-webkit-transform', 'translateY('+offset+'px)') 137 | .css('-moz-transform', 'translateY('+offset+'px)') 138 | .css('-ms-transform', 'translateY('+offset+'px)') 139 | .css('-o-transform', 'translateY('+offset+'px)') 140 | .css('transform', 'translateY('+offset+'px)'); 141 | } else { 142 | $(ele) 143 | .css('-webkit-transform', 'translateX('+offset+'px)') 144 | .css('-moz-transform', 'translateX('+offset+'px)') 145 | .css('-ms-transform', 'translateX('+offset+'px)') 146 | .css('-o-transform', 'translateX('+offset+'px)') 147 | .css('transform', 'translateX('+offset+'px)'); 148 | } 149 | }, 150 | 151 | limit_to : function(val, min, max) { 152 | return Math.min(Math.max(val, min), max); 153 | }, 154 | 155 | initialize_settings : function(handle) { 156 | $.data(handle, 'bar', $(handle).parent()); 157 | $.data(handle, 'bar_o', $(handle).parent().offset().left); 158 | $.data(handle, 'bar_w', $(handle).parent().outerWidth()); 159 | $.data(handle, 'handle_o', $(handle).offset().left); 160 | $.data(handle, 'handle_w', $(handle).outerWidth()); 161 | $.data(handle, 'settings', $.extend({}, this.settings, this.data_options($(handle).parent()))); 162 | }, 163 | 164 | set_initial_position : function($ele) { 165 | var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'), 166 | initial = (!!settings.initial ? settings.initial : Math.floor((settings.end-settings.start)*0.5/settings.step)*settings.step+settings.start), 167 | $handle = $ele.children('.range-slider-handle'); 168 | this.set_ui($handle, initial); 169 | }, 170 | 171 | set_value : function(value) { 172 | var self = this; 173 | $('[' + self.attr_name() + ']', this.scope).each(function(){ 174 | $(this).attr(self.attr_name(), value); 175 | }); 176 | if (!!$(this.scope).attr(self.attr_name())) { 177 | $(this.scope).attr(self.attr_name(), value); 178 | } 179 | self.reflow(); 180 | }, 181 | 182 | reflow : function() { 183 | var self = this; 184 | self.S('[' + this.attr_name() + ']').each(function() { 185 | var handle = $(this).children('.range-slider-handle')[0], 186 | val = $(this).attr(self.attr_name()); 187 | self.initialize_settings(handle); 188 | 189 | if (val) { 190 | self.set_ui($(handle), parseFloat(val)); 191 | } else { 192 | self.set_initial_position($(this)); 193 | } 194 | }); 195 | } 196 | 197 | }; 198 | 199 | }(jQuery, window, window.document)); 200 | -------------------------------------------------------------------------------- /js/vendor/fastclick.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. 3 | * 4 | * @version 1.0.2 5 | * @codingstandard ftlabs-jsv2 6 | * @copyright The Financial Times Limited [All Rights Reserved] 7 | * @license MIT License (see LICENSE.txt) 8 | */ 9 | function FastClick(a,b){"use strict";function c(a,b){return function(){return a.apply(b,arguments)}}var d;if(b=b||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=b.touchBoundary||10,this.layer=a,this.tapDelay=b.tapDelay||200,!FastClick.notNeeded(a)){for(var e=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],f=this,g=0,h=e.length;h>g;g++)f[e[g]]=c(f[e[g]],f);deviceIsAndroid&&(a.addEventListener("mouseover",this.onMouse,!0),a.addEventListener("mousedown",this.onMouse,!0),a.addEventListener("mouseup",this.onMouse,!0)),a.addEventListener("click",this.onClick,!0),a.addEventListener("touchstart",this.onTouchStart,!1),a.addEventListener("touchmove",this.onTouchMove,!1),a.addEventListener("touchend",this.onTouchEnd,!1),a.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(a.removeEventListener=function(b,c,d){var e=Node.prototype.removeEventListener;"click"===b?e.call(a,b,c.hijacked||c,d):e.call(a,b,c,d)},a.addEventListener=function(b,c,d){var e=Node.prototype.addEventListener;"click"===b?e.call(a,b,c.hijacked||(c.hijacked=function(a){a.propagationStopped||c(a)}),d):e.call(a,b,c,d)}),"function"==typeof a.onclick&&(d=a.onclick,a.addEventListener("click",function(a){d(a)},!1),a.onclick=null)}}var deviceIsAndroid=navigator.userAgent.indexOf("Android")>0,deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent),deviceIsIOS4=deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent),deviceIsIOSWithBadTarget=deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(a.disabled)return!0;break;case"input":if(deviceIsIOS&&"file"===a.type||a.disabled)return!0;break;case"label":case"video":return!0}return/\bneedsclick\b/.test(a.className)},FastClick.prototype.needsFocus=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!deviceIsAndroid;case"input":switch(a.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!a.disabled&&!a.readOnly;default:return/\bneedsfocus\b/.test(a.className)}},FastClick.prototype.sendClick=function(a,b){"use strict";var c,d;document.activeElement&&document.activeElement!==a&&document.activeElement.blur(),d=b.changedTouches[0],c=document.createEvent("MouseEvents"),c.initMouseEvent(this.determineEventType(a),!0,!0,window,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),c.forwardedTouchEvent=!0,a.dispatchEvent(c)},FastClick.prototype.determineEventType=function(a){"use strict";return deviceIsAndroid&&"select"===a.tagName.toLowerCase()?"mousedown":"click"},FastClick.prototype.focus=function(a){"use strict";var b;deviceIsIOS&&a.setSelectionRange&&0!==a.type.indexOf("date")&&"time"!==a.type?(b=a.value.length,a.setSelectionRange(b,b)):a.focus()},FastClick.prototype.updateScrollParent=function(a){"use strict";var b,c;if(b=a.fastClickScrollParent,!b||!b.contains(a)){c=a;do{if(c.scrollHeight>c.offsetHeight){b=c,a.fastClickScrollParent=c;break}c=c.parentElement}while(c)}b&&(b.fastClickLastScrollTop=b.scrollTop)},FastClick.prototype.getTargetElementFromEventTarget=function(a){"use strict";return a.nodeType===Node.TEXT_NODE?a.parentNode:a},FastClick.prototype.onTouchStart=function(a){"use strict";var b,c,d;if(a.targetTouches.length>1)return!0;if(b=this.getTargetElementFromEventTarget(a.target),c=a.targetTouches[0],deviceIsIOS){if(d=window.getSelection(),d.rangeCount&&!d.isCollapsed)return!0;if(!deviceIsIOS4){if(c.identifier===this.lastTouchIdentifier)return a.preventDefault(),!1;this.lastTouchIdentifier=c.identifier,this.updateScrollParent(b)}}return this.trackingClick=!0,this.trackingClickStart=a.timeStamp,this.targetElement=b,this.touchStartX=c.pageX,this.touchStartY=c.pageY,a.timeStamp-this.lastClickTimec||Math.abs(b.pageY-this.touchStartY)>c?!0:!1},FastClick.prototype.onTouchMove=function(a){"use strict";return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(a.target)||this.touchHasMoved(a))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},FastClick.prototype.findControl=function(a){"use strict";return void 0!==a.control?a.control:a.htmlFor?document.getElementById(a.htmlFor):a.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},FastClick.prototype.onTouchEnd=function(a){"use strict";var b,c,d,e,f,g=this.targetElement;if(!this.trackingClick)return!0;if(a.timeStamp-this.lastClickTime100||deviceIsIOS&&window.top!==window&&"input"===d?(this.targetElement=null,!1):(this.focus(g),this.sendClick(g,a),deviceIsIOS&&"select"===d||(this.targetElement=null,a.preventDefault()),!1);return deviceIsIOS&&!deviceIsIOS4&&(e=g.fastClickScrollParent,e&&e.fastClickLastScrollTop!==e.scrollTop)?!0:(this.needsClick(g)||(a.preventDefault(),this.sendClick(g,a)),!1)},FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=!1,this.targetElement=null},FastClick.prototype.onMouse=function(a){"use strict";return this.targetElement?a.forwardedTouchEvent?!0:a.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(a.stopImmediatePropagation?a.stopImmediatePropagation():a.propagationStopped=!0,a.stopPropagation(),a.preventDefault(),!1):!0:!0},FastClick.prototype.onClick=function(a){"use strict";var b;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===a.target.type&&0===a.detail?!0:(b=this.onMouse(a),b||(this.targetElement=null),b)},FastClick.prototype.destroy=function(){"use strict";var a=this.layer;deviceIsAndroid&&(a.removeEventListener("mouseover",this.onMouse,!0),a.removeEventListener("mousedown",this.onMouse,!0),a.removeEventListener("mouseup",this.onMouse,!0)),a.removeEventListener("click",this.onClick,!0),a.removeEventListener("touchstart",this.onTouchStart,!1),a.removeEventListener("touchmove",this.onTouchMove,!1),a.removeEventListener("touchend",this.onTouchEnd,!1),a.removeEventListener("touchcancel",this.onTouchCancel,!1)},FastClick.notNeeded=function(a){"use strict";var b,c;if("undefined"==typeof window.ontouchstart)return!0;if(c=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!deviceIsAndroid)return!0;if(b=document.querySelector("meta[name=viewport]")){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(c>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}return"none"===a.style.msTouchAction?!0:!1},FastClick.attach=function(a,b){"use strict";return new FastClick(a,b)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){"use strict";return FastClick}):"undefined"!=typeof module&&module.exports?(module.exports=FastClick.attach,module.exports.FastClick=FastClick):window.FastClick=FastClick; 10 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/vendor/fastclick.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. 3 | * 4 | * @version 1.0.2 5 | * @codingstandard ftlabs-jsv2 6 | * @copyright The Financial Times Limited [All Rights Reserved] 7 | * @license MIT License (see LICENSE.txt) 8 | */ 9 | function FastClick(a,b){"use strict";function c(a,b){return function(){return a.apply(b,arguments)}}var d;if(b=b||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=b.touchBoundary||10,this.layer=a,this.tapDelay=b.tapDelay||200,!FastClick.notNeeded(a)){for(var e=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],f=this,g=0,h=e.length;h>g;g++)f[e[g]]=c(f[e[g]],f);deviceIsAndroid&&(a.addEventListener("mouseover",this.onMouse,!0),a.addEventListener("mousedown",this.onMouse,!0),a.addEventListener("mouseup",this.onMouse,!0)),a.addEventListener("click",this.onClick,!0),a.addEventListener("touchstart",this.onTouchStart,!1),a.addEventListener("touchmove",this.onTouchMove,!1),a.addEventListener("touchend",this.onTouchEnd,!1),a.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(a.removeEventListener=function(b,c,d){var e=Node.prototype.removeEventListener;"click"===b?e.call(a,b,c.hijacked||c,d):e.call(a,b,c,d)},a.addEventListener=function(b,c,d){var e=Node.prototype.addEventListener;"click"===b?e.call(a,b,c.hijacked||(c.hijacked=function(a){a.propagationStopped||c(a)}),d):e.call(a,b,c,d)}),"function"==typeof a.onclick&&(d=a.onclick,a.addEventListener("click",function(a){d(a)},!1),a.onclick=null)}}var deviceIsAndroid=navigator.userAgent.indexOf("Android")>0,deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent),deviceIsIOS4=deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent),deviceIsIOSWithBadTarget=deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(a.disabled)return!0;break;case"input":if(deviceIsIOS&&"file"===a.type||a.disabled)return!0;break;case"label":case"video":return!0}return/\bneedsclick\b/.test(a.className)},FastClick.prototype.needsFocus=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!deviceIsAndroid;case"input":switch(a.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!a.disabled&&!a.readOnly;default:return/\bneedsfocus\b/.test(a.className)}},FastClick.prototype.sendClick=function(a,b){"use strict";var c,d;document.activeElement&&document.activeElement!==a&&document.activeElement.blur(),d=b.changedTouches[0],c=document.createEvent("MouseEvents"),c.initMouseEvent(this.determineEventType(a),!0,!0,window,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),c.forwardedTouchEvent=!0,a.dispatchEvent(c)},FastClick.prototype.determineEventType=function(a){"use strict";return deviceIsAndroid&&"select"===a.tagName.toLowerCase()?"mousedown":"click"},FastClick.prototype.focus=function(a){"use strict";var b;deviceIsIOS&&a.setSelectionRange&&0!==a.type.indexOf("date")&&"time"!==a.type?(b=a.value.length,a.setSelectionRange(b,b)):a.focus()},FastClick.prototype.updateScrollParent=function(a){"use strict";var b,c;if(b=a.fastClickScrollParent,!b||!b.contains(a)){c=a;do{if(c.scrollHeight>c.offsetHeight){b=c,a.fastClickScrollParent=c;break}c=c.parentElement}while(c)}b&&(b.fastClickLastScrollTop=b.scrollTop)},FastClick.prototype.getTargetElementFromEventTarget=function(a){"use strict";return a.nodeType===Node.TEXT_NODE?a.parentNode:a},FastClick.prototype.onTouchStart=function(a){"use strict";var b,c,d;if(a.targetTouches.length>1)return!0;if(b=this.getTargetElementFromEventTarget(a.target),c=a.targetTouches[0],deviceIsIOS){if(d=window.getSelection(),d.rangeCount&&!d.isCollapsed)return!0;if(!deviceIsIOS4){if(c.identifier===this.lastTouchIdentifier)return a.preventDefault(),!1;this.lastTouchIdentifier=c.identifier,this.updateScrollParent(b)}}return this.trackingClick=!0,this.trackingClickStart=a.timeStamp,this.targetElement=b,this.touchStartX=c.pageX,this.touchStartY=c.pageY,a.timeStamp-this.lastClickTimec||Math.abs(b.pageY-this.touchStartY)>c?!0:!1},FastClick.prototype.onTouchMove=function(a){"use strict";return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(a.target)||this.touchHasMoved(a))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},FastClick.prototype.findControl=function(a){"use strict";return void 0!==a.control?a.control:a.htmlFor?document.getElementById(a.htmlFor):a.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},FastClick.prototype.onTouchEnd=function(a){"use strict";var b,c,d,e,f,g=this.targetElement;if(!this.trackingClick)return!0;if(a.timeStamp-this.lastClickTime100||deviceIsIOS&&window.top!==window&&"input"===d?(this.targetElement=null,!1):(this.focus(g),this.sendClick(g,a),deviceIsIOS&&"select"===d||(this.targetElement=null,a.preventDefault()),!1);return deviceIsIOS&&!deviceIsIOS4&&(e=g.fastClickScrollParent,e&&e.fastClickLastScrollTop!==e.scrollTop)?!0:(this.needsClick(g)||(a.preventDefault(),this.sendClick(g,a)),!1)},FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=!1,this.targetElement=null},FastClick.prototype.onMouse=function(a){"use strict";return this.targetElement?a.forwardedTouchEvent?!0:a.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(a.stopImmediatePropagation?a.stopImmediatePropagation():a.propagationStopped=!0,a.stopPropagation(),a.preventDefault(),!1):!0:!0},FastClick.prototype.onClick=function(a){"use strict";var b;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===a.target.type&&0===a.detail?!0:(b=this.onMouse(a),b||(this.targetElement=null),b)},FastClick.prototype.destroy=function(){"use strict";var a=this.layer;deviceIsAndroid&&(a.removeEventListener("mouseover",this.onMouse,!0),a.removeEventListener("mousedown",this.onMouse,!0),a.removeEventListener("mouseup",this.onMouse,!0)),a.removeEventListener("click",this.onClick,!0),a.removeEventListener("touchstart",this.onTouchStart,!1),a.removeEventListener("touchmove",this.onTouchMove,!1),a.removeEventListener("touchend",this.onTouchEnd,!1),a.removeEventListener("touchcancel",this.onTouchCancel,!1)},FastClick.notNeeded=function(a){"use strict";var b,c;if("undefined"==typeof window.ontouchstart)return!0;if(c=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!deviceIsAndroid)return!0;if(b=document.querySelector("meta[name=viewport]")){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(c>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}return"none"===a.style.msTouchAction?!0:!1},FastClick.attach=function(a,b){"use strict";return new FastClick(a,b)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){"use strict";return FastClick}):"undefined"!=typeof module&&module.exports?(module.exports=FastClick.attach,module.exports.FastClick=FastClick):window.FastClick=FastClick; 10 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/comments.php: -------------------------------------------------------------------------------- 1 | 2 |
    3 | 4 | post_password) ) : 9 | if ( $_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password ) : 10 | ?> 11 |
    12 |
    13 | 18 | 19 | 20 | 21 | 22 | 27 | 28 | 29 | 30 | 31 |
    32 |

    1 ? __('%d Comments', 'hbd-theme') : __('One Comment', 'hbd-theme'), $comment_count) ?>

    33 | 34 | 35 | 1 ) : ?> 36 |
    37 | 38 |
    39 | 40 | 41 | 42 |
      43 | 44 |
    45 | 46 | 47 | 1 ) : ?> 48 |
    49 | 50 |
    51 | 52 | 53 |
    54 | 55 | 56 | 57 | 58 | 59 | 60 |
    61 |

    1 ? __('%d Trackbacks', 'hbd-theme') : __('One Trackback', 'hbd-theme'), $ping_count) ?>

    62 | 63 | 64 |
      65 | 66 |
    67 | 68 |
    69 | 70 | 71 | 72 | 73 | 74 | comment_status ) : ?> 75 |
    76 |

    77 | 78 |
    79 | 80 | 81 |

    logged in to post a comment.', 'hbd-theme'), 82 | get_option('siteurl') . '/wp-login.php?redirect_to=' . get_permalink() ) ?>

    83 | 84 | 85 |
    86 | 87 |
    88 | 89 | 90 |

    Logged in as %2$s. Log out?', 'hbd-theme'), 91 | get_option('siteurl') . '/wp-admin/profile.php', 92 | wp_specialchars($user_identity, true), 93 | wp_logout_url(get_permalink()) ) ?>

    94 | 95 | 96 | 97 |

    never published nor shared.', 'hbd-theme') ?> *', 'hbd-theme') ?>

    98 | 99 |
    100 |
    *', 'hbd-theme') ?>
    101 |
    102 |
    103 | 104 |
    105 |
    *', 'hbd-theme') ?>
    106 |
    107 |
    108 | 109 |
    110 |
    111 |
    112 |
    113 | 114 | 115 | 116 |
    117 |
    118 |
    119 |
    120 | 121 |
    122 |

    HTML tags and attributes:', 'hbd-theme') ?>

    123 |
    124 | 125 | ID); ?> 126 | 127 |
    128 | 129 | 130 | 131 | 132 | 133 |
    134 |
    135 | 136 |
    137 | comment_status ) */ ?> 138 | -------------------------------------------------------------------------------- /css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.1 | MIT License | git.io/normalize */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS text size adjust after orientation change, without disabling 6 | * user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. 29 | * Correct `block` display not defined for `main` in IE 11. 30 | */ 31 | 32 | article, 33 | aside, 34 | details, 35 | figcaption, 36 | figure, 37 | footer, 38 | header, 39 | hgroup, 40 | main, 41 | nav, 42 | section, 43 | summary { 44 | display: block; 45 | } 46 | 47 | /** 48 | * 1. Correct `inline-block` display not defined in IE 8/9. 49 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 50 | */ 51 | 52 | audio, 53 | canvas, 54 | progress, 55 | video { 56 | display: inline-block; /* 1 */ 57 | vertical-align: baseline; /* 2 */ 58 | } 59 | 60 | /** 61 | * Prevent modern browsers from displaying `audio` without controls. 62 | * Remove excess height in iOS 5 devices. 63 | */ 64 | 65 | audio:not([controls]) { 66 | display: none; 67 | height: 0; 68 | } 69 | 70 | /** 71 | * Address `[hidden]` styling not present in IE 8/9/10. 72 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 73 | */ 74 | 75 | [hidden], 76 | template { 77 | display: none; 78 | } 79 | 80 | /* Links 81 | ========================================================================== */ 82 | 83 | /** 84 | * Remove the gray background color from active links in IE 10. 85 | */ 86 | 87 | a { 88 | background: transparent; 89 | } 90 | 91 | /** 92 | * Improve readability when focused and also mouse hovered in all browsers. 93 | */ 94 | 95 | a:active, 96 | a:hover { 97 | outline: 0; 98 | } 99 | 100 | /* Text-level semantics 101 | ========================================================================== */ 102 | 103 | /** 104 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 105 | */ 106 | 107 | abbr[title] { 108 | border-bottom: 1px dotted; 109 | } 110 | 111 | /** 112 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 113 | */ 114 | 115 | b, 116 | strong { 117 | font-weight: bold; 118 | } 119 | 120 | /** 121 | * Address styling not present in Safari and Chrome. 122 | */ 123 | 124 | dfn { 125 | font-style: italic; 126 | } 127 | 128 | /** 129 | * Address variable `h1` font-size and margin within `section` and `article` 130 | * contexts in Firefox 4+, Safari, and Chrome. 131 | */ 132 | 133 | h1 { 134 | font-size: 2em; 135 | margin: 0.67em 0; 136 | } 137 | 138 | /** 139 | * Address styling not present in IE 8/9. 140 | */ 141 | 142 | mark { 143 | background: #ff0; 144 | color: #000; 145 | } 146 | 147 | /** 148 | * Address inconsistent and variable font size in all browsers. 149 | */ 150 | 151 | small { 152 | font-size: 80%; 153 | } 154 | 155 | /** 156 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 157 | */ 158 | 159 | sub, 160 | sup { 161 | font-size: 75%; 162 | line-height: 0; 163 | position: relative; 164 | vertical-align: baseline; 165 | } 166 | 167 | sup { 168 | top: -0.5em; 169 | } 170 | 171 | sub { 172 | bottom: -0.25em; 173 | } 174 | 175 | /* Embedded content 176 | ========================================================================== */ 177 | 178 | /** 179 | * Remove border when inside `a` element in IE 8/9/10. 180 | */ 181 | 182 | img { 183 | border: 0; 184 | } 185 | 186 | /** 187 | * Correct overflow not hidden in IE 9/10/11. 188 | */ 189 | 190 | svg:not(:root) { 191 | overflow: hidden; 192 | } 193 | 194 | /* Grouping content 195 | ========================================================================== */ 196 | 197 | /** 198 | * Address margin not present in IE 8/9 and Safari. 199 | */ 200 | 201 | figure { 202 | margin: 1em 40px; 203 | } 204 | 205 | /** 206 | * Address differences between Firefox and other browsers. 207 | */ 208 | 209 | hr { 210 | -moz-box-sizing: content-box; 211 | box-sizing: content-box; 212 | height: 0; 213 | } 214 | 215 | /** 216 | * Contain overflow in all browsers. 217 | */ 218 | 219 | pre { 220 | overflow: auto; 221 | } 222 | 223 | /** 224 | * Address odd `em`-unit font size rendering in all browsers. 225 | */ 226 | 227 | code, 228 | kbd, 229 | pre, 230 | samp { 231 | font-family: monospace, monospace; 232 | font-size: 1em; 233 | } 234 | 235 | /* Forms 236 | ========================================================================== */ 237 | 238 | /** 239 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 240 | * styling of `select`, unless a `border` property is set. 241 | */ 242 | 243 | /** 244 | * 1. Correct color not being inherited. 245 | * Known issue: affects color of disabled elements. 246 | * 2. Correct font properties not being inherited. 247 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 248 | */ 249 | 250 | button, 251 | input, 252 | optgroup, 253 | select, 254 | textarea { 255 | color: inherit; /* 1 */ 256 | font: inherit; /* 2 */ 257 | margin: 0; /* 3 */ 258 | } 259 | 260 | /** 261 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 262 | */ 263 | 264 | button { 265 | overflow: visible; 266 | } 267 | 268 | /** 269 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 270 | * All other form control elements do not inherit `text-transform` values. 271 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 272 | * Correct `select` style inheritance in Firefox. 273 | */ 274 | 275 | button, 276 | select { 277 | text-transform: none; 278 | } 279 | 280 | /** 281 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 282 | * and `video` controls. 283 | * 2. Correct inability to style clickable `input` types in iOS. 284 | * 3. Improve usability and consistency of cursor style between image-type 285 | * `input` and others. 286 | */ 287 | 288 | button, 289 | html input[type="button"], /* 1 */ 290 | input[type="reset"], 291 | input[type="submit"] { 292 | -webkit-appearance: button; /* 2 */ 293 | cursor: pointer; /* 3 */ 294 | } 295 | 296 | /** 297 | * Re-set default cursor for disabled elements. 298 | */ 299 | 300 | button[disabled], 301 | html input[disabled] { 302 | cursor: default; 303 | } 304 | 305 | /** 306 | * Remove inner padding and border in Firefox 4+. 307 | */ 308 | 309 | button::-moz-focus-inner, 310 | input::-moz-focus-inner { 311 | border: 0; 312 | padding: 0; 313 | } 314 | 315 | /** 316 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 317 | * the UA stylesheet. 318 | */ 319 | 320 | input { 321 | line-height: normal; 322 | } 323 | 324 | /** 325 | * It's recommended that you don't attempt to style these elements. 326 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 327 | * 328 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 329 | * 2. Remove excess padding in IE 8/9/10. 330 | */ 331 | 332 | input[type="checkbox"], 333 | input[type="radio"] { 334 | box-sizing: border-box; /* 1 */ 335 | padding: 0; /* 2 */ 336 | } 337 | 338 | /** 339 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 340 | * `font-size` values of the `input`, it causes the cursor style of the 341 | * decrement button to change from `default` to `text`. 342 | */ 343 | 344 | input[type="number"]::-webkit-inner-spin-button, 345 | input[type="number"]::-webkit-outer-spin-button { 346 | height: auto; 347 | } 348 | 349 | /** 350 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 351 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome 352 | * (include `-moz` to future-proof). 353 | */ 354 | 355 | input[type="search"] { 356 | -webkit-appearance: textfield; /* 1 */ 357 | -moz-box-sizing: content-box; 358 | -webkit-box-sizing: content-box; /* 2 */ 359 | box-sizing: content-box; 360 | } 361 | 362 | /** 363 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 364 | * Safari (but not Chrome) clips the cancel button when the search input has 365 | * padding (and `textfield` appearance). 366 | */ 367 | 368 | input[type="search"]::-webkit-search-cancel-button, 369 | input[type="search"]::-webkit-search-decoration { 370 | -webkit-appearance: none; 371 | } 372 | 373 | /** 374 | * Define consistent border, margin, and padding. 375 | */ 376 | 377 | fieldset { 378 | border: 1px solid #c0c0c0; 379 | margin: 0 2px; 380 | padding: 0.35em 0.625em 0.75em; 381 | } 382 | 383 | /** 384 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 385 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 386 | */ 387 | 388 | legend { 389 | border: 0; /* 1 */ 390 | padding: 0; /* 2 */ 391 | } 392 | 393 | /** 394 | * Remove default vertical scrollbar in IE 8/9/10/11. 395 | */ 396 | 397 | textarea { 398 | overflow: auto; 399 | } 400 | 401 | /** 402 | * Don't inherit the `font-weight` (applied by a rule above). 403 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 404 | */ 405 | 406 | optgroup { 407 | font-weight: bold; 408 | } 409 | 410 | /* Tables 411 | ========================================================================== */ 412 | 413 | /** 414 | * Remove most spacing between table cells. 415 | */ 416 | 417 | table { 418 | border-collapse: collapse; 419 | border-spacing: 0; 420 | } 421 | 422 | td, 423 | th { 424 | padding: 0; 425 | } 426 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.1 | MIT License | git.io/normalize */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS text size adjust after orientation change, without disabling 6 | * user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. 29 | * Correct `block` display not defined for `main` in IE 11. 30 | */ 31 | 32 | article, 33 | aside, 34 | details, 35 | figcaption, 36 | figure, 37 | footer, 38 | header, 39 | hgroup, 40 | main, 41 | nav, 42 | section, 43 | summary { 44 | display: block; 45 | } 46 | 47 | /** 48 | * 1. Correct `inline-block` display not defined in IE 8/9. 49 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 50 | */ 51 | 52 | audio, 53 | canvas, 54 | progress, 55 | video { 56 | display: inline-block; /* 1 */ 57 | vertical-align: baseline; /* 2 */ 58 | } 59 | 60 | /** 61 | * Prevent modern browsers from displaying `audio` without controls. 62 | * Remove excess height in iOS 5 devices. 63 | */ 64 | 65 | audio:not([controls]) { 66 | display: none; 67 | height: 0; 68 | } 69 | 70 | /** 71 | * Address `[hidden]` styling not present in IE 8/9/10. 72 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 73 | */ 74 | 75 | [hidden], 76 | template { 77 | display: none; 78 | } 79 | 80 | /* Links 81 | ========================================================================== */ 82 | 83 | /** 84 | * Remove the gray background color from active links in IE 10. 85 | */ 86 | 87 | a { 88 | background: transparent; 89 | } 90 | 91 | /** 92 | * Improve readability when focused and also mouse hovered in all browsers. 93 | */ 94 | 95 | a:active, 96 | a:hover { 97 | outline: 0; 98 | } 99 | 100 | /* Text-level semantics 101 | ========================================================================== */ 102 | 103 | /** 104 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 105 | */ 106 | 107 | abbr[title] { 108 | border-bottom: 1px dotted; 109 | } 110 | 111 | /** 112 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 113 | */ 114 | 115 | b, 116 | strong { 117 | font-weight: bold; 118 | } 119 | 120 | /** 121 | * Address styling not present in Safari and Chrome. 122 | */ 123 | 124 | dfn { 125 | font-style: italic; 126 | } 127 | 128 | /** 129 | * Address variable `h1` font-size and margin within `section` and `article` 130 | * contexts in Firefox 4+, Safari, and Chrome. 131 | */ 132 | 133 | h1 { 134 | font-size: 2em; 135 | margin: 0.67em 0; 136 | } 137 | 138 | /** 139 | * Address styling not present in IE 8/9. 140 | */ 141 | 142 | mark { 143 | background: #ff0; 144 | color: #000; 145 | } 146 | 147 | /** 148 | * Address inconsistent and variable font size in all browsers. 149 | */ 150 | 151 | small { 152 | font-size: 80%; 153 | } 154 | 155 | /** 156 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 157 | */ 158 | 159 | sub, 160 | sup { 161 | font-size: 75%; 162 | line-height: 0; 163 | position: relative; 164 | vertical-align: baseline; 165 | } 166 | 167 | sup { 168 | top: -0.5em; 169 | } 170 | 171 | sub { 172 | bottom: -0.25em; 173 | } 174 | 175 | /* Embedded content 176 | ========================================================================== */ 177 | 178 | /** 179 | * Remove border when inside `a` element in IE 8/9/10. 180 | */ 181 | 182 | img { 183 | border: 0; 184 | } 185 | 186 | /** 187 | * Correct overflow not hidden in IE 9/10/11. 188 | */ 189 | 190 | svg:not(:root) { 191 | overflow: hidden; 192 | } 193 | 194 | /* Grouping content 195 | ========================================================================== */ 196 | 197 | /** 198 | * Address margin not present in IE 8/9 and Safari. 199 | */ 200 | 201 | figure { 202 | margin: 1em 40px; 203 | } 204 | 205 | /** 206 | * Address differences between Firefox and other browsers. 207 | */ 208 | 209 | hr { 210 | -moz-box-sizing: content-box; 211 | box-sizing: content-box; 212 | height: 0; 213 | } 214 | 215 | /** 216 | * Contain overflow in all browsers. 217 | */ 218 | 219 | pre { 220 | overflow: auto; 221 | } 222 | 223 | /** 224 | * Address odd `em`-unit font size rendering in all browsers. 225 | */ 226 | 227 | code, 228 | kbd, 229 | pre, 230 | samp { 231 | font-family: monospace, monospace; 232 | font-size: 1em; 233 | } 234 | 235 | /* Forms 236 | ========================================================================== */ 237 | 238 | /** 239 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 240 | * styling of `select`, unless a `border` property is set. 241 | */ 242 | 243 | /** 244 | * 1. Correct color not being inherited. 245 | * Known issue: affects color of disabled elements. 246 | * 2. Correct font properties not being inherited. 247 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 248 | */ 249 | 250 | button, 251 | input, 252 | optgroup, 253 | select, 254 | textarea { 255 | color: inherit; /* 1 */ 256 | font: inherit; /* 2 */ 257 | margin: 0; /* 3 */ 258 | } 259 | 260 | /** 261 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 262 | */ 263 | 264 | button { 265 | overflow: visible; 266 | } 267 | 268 | /** 269 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 270 | * All other form control elements do not inherit `text-transform` values. 271 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 272 | * Correct `select` style inheritance in Firefox. 273 | */ 274 | 275 | button, 276 | select { 277 | text-transform: none; 278 | } 279 | 280 | /** 281 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 282 | * and `video` controls. 283 | * 2. Correct inability to style clickable `input` types in iOS. 284 | * 3. Improve usability and consistency of cursor style between image-type 285 | * `input` and others. 286 | */ 287 | 288 | button, 289 | html input[type="button"], /* 1 */ 290 | input[type="reset"], 291 | input[type="submit"] { 292 | -webkit-appearance: button; /* 2 */ 293 | cursor: pointer; /* 3 */ 294 | } 295 | 296 | /** 297 | * Re-set default cursor for disabled elements. 298 | */ 299 | 300 | button[disabled], 301 | html input[disabled] { 302 | cursor: default; 303 | } 304 | 305 | /** 306 | * Remove inner padding and border in Firefox 4+. 307 | */ 308 | 309 | button::-moz-focus-inner, 310 | input::-moz-focus-inner { 311 | border: 0; 312 | padding: 0; 313 | } 314 | 315 | /** 316 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 317 | * the UA stylesheet. 318 | */ 319 | 320 | input { 321 | line-height: normal; 322 | } 323 | 324 | /** 325 | * It's recommended that you don't attempt to style these elements. 326 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 327 | * 328 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 329 | * 2. Remove excess padding in IE 8/9/10. 330 | */ 331 | 332 | input[type="checkbox"], 333 | input[type="radio"] { 334 | box-sizing: border-box; /* 1 */ 335 | padding: 0; /* 2 */ 336 | } 337 | 338 | /** 339 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 340 | * `font-size` values of the `input`, it causes the cursor style of the 341 | * decrement button to change from `default` to `text`. 342 | */ 343 | 344 | input[type="number"]::-webkit-inner-spin-button, 345 | input[type="number"]::-webkit-outer-spin-button { 346 | height: auto; 347 | } 348 | 349 | /** 350 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 351 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome 352 | * (include `-moz` to future-proof). 353 | */ 354 | 355 | input[type="search"] { 356 | -webkit-appearance: textfield; /* 1 */ 357 | -moz-box-sizing: content-box; 358 | -webkit-box-sizing: content-box; /* 2 */ 359 | box-sizing: content-box; 360 | } 361 | 362 | /** 363 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 364 | * Safari (but not Chrome) clips the cancel button when the search input has 365 | * padding (and `textfield` appearance). 366 | */ 367 | 368 | input[type="search"]::-webkit-search-cancel-button, 369 | input[type="search"]::-webkit-search-decoration { 370 | -webkit-appearance: none; 371 | } 372 | 373 | /** 374 | * Define consistent border, margin, and padding. 375 | */ 376 | 377 | fieldset { 378 | border: 1px solid #c0c0c0; 379 | margin: 0 2px; 380 | padding: 0.35em 0.625em 0.75em; 381 | } 382 | 383 | /** 384 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 385 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 386 | */ 387 | 388 | legend { 389 | border: 0; /* 1 */ 390 | padding: 0; /* 2 */ 391 | } 392 | 393 | /** 394 | * Remove default vertical scrollbar in IE 8/9/10/11. 395 | */ 396 | 397 | textarea { 398 | overflow: auto; 399 | } 400 | 401 | /** 402 | * Don't inherit the `font-weight` (applied by a rule above). 403 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 404 | */ 405 | 406 | optgroup { 407 | font-weight: bold; 408 | } 409 | 410 | /* Tables 411 | ========================================================================== */ 412 | 413 | /** 414 | * Remove most spacing between table cells. 415 | */ 416 | 417 | table { 418 | border-collapse: collapse; 419 | border-spacing: 0; 420 | } 421 | 422 | td, 423 | th { 424 | padding: 0; 425 | } 426 | -------------------------------------------------------------------------------- /js/foundation/foundation.interchange.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.interchange = { 5 | name : 'interchange', 6 | 7 | version : '5.2.3', 8 | 9 | cache : {}, 10 | 11 | images_loaded : false, 12 | nodes_loaded : false, 13 | 14 | settings : { 15 | load_attr : 'interchange', 16 | 17 | named_queries : { 18 | 'default' : 'only screen', 19 | small : Foundation.media_queries.small, 20 | medium : Foundation.media_queries.medium, 21 | large : Foundation.media_queries.large, 22 | xlarge : Foundation.media_queries.xlarge, 23 | xxlarge: Foundation.media_queries.xxlarge, 24 | landscape : 'only screen and (orientation: landscape)', 25 | portrait : 'only screen and (orientation: portrait)', 26 | retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' + 27 | 'only screen and (min--moz-device-pixel-ratio: 2),' + 28 | 'only screen and (-o-min-device-pixel-ratio: 2/1),' + 29 | 'only screen and (min-device-pixel-ratio: 2),' + 30 | 'only screen and (min-resolution: 192dpi),' + 31 | 'only screen and (min-resolution: 2dppx)' 32 | }, 33 | 34 | directives : { 35 | replace: function (el, path, trigger) { 36 | // The trigger argument, if called within the directive, fires 37 | // an event named after the directive on the element, passing 38 | // any parameters along to the event that you pass to trigger. 39 | // 40 | // ex. trigger(), trigger([a, b, c]), or trigger(a, b, c) 41 | // 42 | // This allows you to bind a callback like so: 43 | // $('#interchangeContainer').on('replace', function (e, a, b, c) { 44 | // console.log($(this).html(), a, b, c); 45 | // }); 46 | 47 | if (/IMG/.test(el[0].nodeName)) { 48 | var orig_path = el[0].src; 49 | 50 | if (new RegExp(path, 'i').test(orig_path)) return; 51 | 52 | el[0].src = path; 53 | 54 | return trigger(el[0].src); 55 | } 56 | var last_path = el.data(this.data_attr + '-last-path'); 57 | 58 | if (last_path == path) return; 59 | 60 | if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) { 61 | $(el).css('background-image', 'url('+path+')'); 62 | el.data('interchange-last-path', path); 63 | return trigger(path); 64 | } 65 | 66 | return $.get(path, function (response) { 67 | el.html(response); 68 | el.data(this.data_attr + '-last-path', path); 69 | trigger(); 70 | }); 71 | 72 | } 73 | } 74 | }, 75 | 76 | init : function (scope, method, options) { 77 | Foundation.inherit(this, 'throttle random_str'); 78 | 79 | this.data_attr = this.set_data_attr(); 80 | $.extend(true, this.settings, method, options); 81 | this.bindings(method, options); 82 | this.load('images'); 83 | this.load('nodes'); 84 | }, 85 | 86 | get_media_hash : function() { 87 | var mediaHash=''; 88 | for (var queryName in this.settings.named_queries ) { 89 | mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString(); 90 | } 91 | return mediaHash; 92 | }, 93 | 94 | events : function () { 95 | var self = this, prevMediaHash; 96 | 97 | $(window) 98 | .off('.interchange') 99 | .on('resize.fndtn.interchange', self.throttle(function () { 100 | var currMediaHash = self.get_media_hash(); 101 | if (currMediaHash !== prevMediaHash) { 102 | self.resize(); 103 | } 104 | prevMediaHash = currMediaHash; 105 | }, 50)); 106 | 107 | return this; 108 | }, 109 | 110 | resize : function () { 111 | var cache = this.cache; 112 | 113 | if(!this.images_loaded || !this.nodes_loaded) { 114 | setTimeout($.proxy(this.resize, this), 50); 115 | return; 116 | } 117 | 118 | for (var uuid in cache) { 119 | if (cache.hasOwnProperty(uuid)) { 120 | var passed = this.results(uuid, cache[uuid]); 121 | 122 | if (passed) { 123 | this.settings.directives[passed 124 | .scenario[1]].call(this, passed.el, passed.scenario[0], function () { 125 | if (arguments[0] instanceof Array) { 126 | var args = arguments[0]; 127 | } else { 128 | var args = Array.prototype.slice.call(arguments, 0); 129 | } 130 | 131 | passed.el.trigger(passed.scenario[1], args); 132 | }); 133 | } 134 | } 135 | } 136 | 137 | }, 138 | 139 | results : function (uuid, scenarios) { 140 | var count = scenarios.length; 141 | 142 | if (count > 0) { 143 | var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]'); 144 | 145 | while (count--) { 146 | var mq, rule = scenarios[count][2]; 147 | if (this.settings.named_queries.hasOwnProperty(rule)) { 148 | mq = matchMedia(this.settings.named_queries[rule]); 149 | } else { 150 | mq = matchMedia(rule); 151 | } 152 | if (mq.matches) { 153 | return {el: el, scenario: scenarios[count]}; 154 | } 155 | } 156 | } 157 | 158 | return false; 159 | }, 160 | 161 | load : function (type, force_update) { 162 | if (typeof this['cached_' + type] === 'undefined' || force_update) { 163 | this['update_' + type](); 164 | } 165 | 166 | return this['cached_' + type]; 167 | }, 168 | 169 | update_images : function () { 170 | var images = this.S('img[' + this.data_attr + ']'), 171 | count = images.length, 172 | i = count, 173 | loaded_count = 0, 174 | data_attr = this.data_attr; 175 | 176 | this.cache = {}; 177 | this.cached_images = []; 178 | this.images_loaded = (count === 0); 179 | 180 | while (i--) { 181 | loaded_count++; 182 | if (images[i]) { 183 | var str = images[i].getAttribute(data_attr) || ''; 184 | 185 | if (str.length > 0) { 186 | this.cached_images.push(images[i]); 187 | } 188 | } 189 | 190 | if (loaded_count === count) { 191 | this.images_loaded = true; 192 | this.enhance('images'); 193 | } 194 | } 195 | 196 | return this; 197 | }, 198 | 199 | update_nodes : function () { 200 | var nodes = this.S('[' + this.data_attr + ']').not('img'), 201 | count = nodes.length, 202 | i = count, 203 | loaded_count = 0, 204 | data_attr = this.data_attr; 205 | 206 | this.cached_nodes = []; 207 | this.nodes_loaded = (count === 0); 208 | 209 | 210 | while (i--) { 211 | loaded_count++; 212 | var str = nodes[i].getAttribute(data_attr) || ''; 213 | 214 | if (str.length > 0) { 215 | this.cached_nodes.push(nodes[i]); 216 | } 217 | 218 | if(loaded_count === count) { 219 | this.nodes_loaded = true; 220 | this.enhance('nodes'); 221 | } 222 | } 223 | 224 | return this; 225 | }, 226 | 227 | enhance : function (type) { 228 | var i = this['cached_' + type].length; 229 | 230 | while (i--) { 231 | this.object($(this['cached_' + type][i])); 232 | } 233 | 234 | return $(window).trigger('resize'); 235 | }, 236 | 237 | parse_params : function (path, directive, mq) { 238 | return [this.trim(path), this.convert_directive(directive), this.trim(mq)]; 239 | }, 240 | 241 | convert_directive : function (directive) { 242 | 243 | var trimmed = this.trim(directive); 244 | 245 | if (trimmed.length > 0) { 246 | return trimmed; 247 | } 248 | 249 | return 'replace'; 250 | }, 251 | 252 | object : function(el) { 253 | var raw_arr = this.parse_data_attr(el), 254 | scenarios = [], 255 | i = raw_arr.length; 256 | 257 | if (i > 0) { 258 | while (i--) { 259 | var split = raw_arr[i].split(/\((.*?)(\))$/); 260 | 261 | if (split.length > 1) { 262 | var cached_split = split[0].split(/\, /), 263 | params = this.parse_params(cached_split[0], 264 | cached_split[1], split[1]); 265 | 266 | scenarios.push(params); 267 | } 268 | } 269 | } 270 | 271 | return this.store(el, scenarios); 272 | }, 273 | 274 | store : function (el, scenarios) { 275 | var uuid = this.random_str(), 276 | current_uuid = el.data(this.add_namespace('uuid', true)); 277 | 278 | if (this.cache[current_uuid]) return this.cache[current_uuid]; 279 | 280 | el.attr(this.add_namespace('data-uuid'), uuid); 281 | 282 | return this.cache[uuid] = scenarios; 283 | }, 284 | 285 | trim : function(str) { 286 | 287 | if (typeof str === 'string') { 288 | return $.trim(str); 289 | } 290 | 291 | return str; 292 | }, 293 | 294 | set_data_attr: function (init) { 295 | if (init) { 296 | if (this.namespace.length > 0) { 297 | return this.namespace + '-' + this.settings.load_attr; 298 | } 299 | 300 | return this.settings.load_attr; 301 | } 302 | 303 | if (this.namespace.length > 0) { 304 | return 'data-' + this.namespace + '-' + this.settings.load_attr; 305 | } 306 | 307 | return 'data-' + this.settings.load_attr; 308 | }, 309 | 310 | parse_data_attr : function (el) { 311 | var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/), 312 | i = raw.length, 313 | output = []; 314 | 315 | while (i--) { 316 | if (raw[i].replace(/[\W\d]+/, '').length > 4) { 317 | output.push(raw[i]); 318 | } 319 | } 320 | 321 | return output; 322 | }, 323 | 324 | reflow : function () { 325 | this.load('images', true); 326 | this.load('nodes', true); 327 | } 328 | 329 | }; 330 | 331 | }(jQuery, window, window.document)); 332 | -------------------------------------------------------------------------------- /dev/wordpress/wp-content/themes/ectc_theme/js/foundation/foundation.interchange.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.interchange = { 5 | name : 'interchange', 6 | 7 | version : '5.2.3', 8 | 9 | cache : {}, 10 | 11 | images_loaded : false, 12 | nodes_loaded : false, 13 | 14 | settings : { 15 | load_attr : 'interchange', 16 | 17 | named_queries : { 18 | 'default' : 'only screen', 19 | small : Foundation.media_queries.small, 20 | medium : Foundation.media_queries.medium, 21 | large : Foundation.media_queries.large, 22 | xlarge : Foundation.media_queries.xlarge, 23 | xxlarge: Foundation.media_queries.xxlarge, 24 | landscape : 'only screen and (orientation: landscape)', 25 | portrait : 'only screen and (orientation: portrait)', 26 | retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' + 27 | 'only screen and (min--moz-device-pixel-ratio: 2),' + 28 | 'only screen and (-o-min-device-pixel-ratio: 2/1),' + 29 | 'only screen and (min-device-pixel-ratio: 2),' + 30 | 'only screen and (min-resolution: 192dpi),' + 31 | 'only screen and (min-resolution: 2dppx)' 32 | }, 33 | 34 | directives : { 35 | replace: function (el, path, trigger) { 36 | // The trigger argument, if called within the directive, fires 37 | // an event named after the directive on the element, passing 38 | // any parameters along to the event that you pass to trigger. 39 | // 40 | // ex. trigger(), trigger([a, b, c]), or trigger(a, b, c) 41 | // 42 | // This allows you to bind a callback like so: 43 | // $('#interchangeContainer').on('replace', function (e, a, b, c) { 44 | // console.log($(this).html(), a, b, c); 45 | // }); 46 | 47 | if (/IMG/.test(el[0].nodeName)) { 48 | var orig_path = el[0].src; 49 | 50 | if (new RegExp(path, 'i').test(orig_path)) return; 51 | 52 | el[0].src = path; 53 | 54 | return trigger(el[0].src); 55 | } 56 | var last_path = el.data(this.data_attr + '-last-path'); 57 | 58 | if (last_path == path) return; 59 | 60 | if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) { 61 | $(el).css('background-image', 'url('+path+')'); 62 | el.data('interchange-last-path', path); 63 | return trigger(path); 64 | } 65 | 66 | return $.get(path, function (response) { 67 | el.html(response); 68 | el.data(this.data_attr + '-last-path', path); 69 | trigger(); 70 | }); 71 | 72 | } 73 | } 74 | }, 75 | 76 | init : function (scope, method, options) { 77 | Foundation.inherit(this, 'throttle random_str'); 78 | 79 | this.data_attr = this.set_data_attr(); 80 | $.extend(true, this.settings, method, options); 81 | this.bindings(method, options); 82 | this.load('images'); 83 | this.load('nodes'); 84 | }, 85 | 86 | get_media_hash : function() { 87 | var mediaHash=''; 88 | for (var queryName in this.settings.named_queries ) { 89 | mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString(); 90 | } 91 | return mediaHash; 92 | }, 93 | 94 | events : function () { 95 | var self = this, prevMediaHash; 96 | 97 | $(window) 98 | .off('.interchange') 99 | .on('resize.fndtn.interchange', self.throttle(function () { 100 | var currMediaHash = self.get_media_hash(); 101 | if (currMediaHash !== prevMediaHash) { 102 | self.resize(); 103 | } 104 | prevMediaHash = currMediaHash; 105 | }, 50)); 106 | 107 | return this; 108 | }, 109 | 110 | resize : function () { 111 | var cache = this.cache; 112 | 113 | if(!this.images_loaded || !this.nodes_loaded) { 114 | setTimeout($.proxy(this.resize, this), 50); 115 | return; 116 | } 117 | 118 | for (var uuid in cache) { 119 | if (cache.hasOwnProperty(uuid)) { 120 | var passed = this.results(uuid, cache[uuid]); 121 | 122 | if (passed) { 123 | this.settings.directives[passed 124 | .scenario[1]].call(this, passed.el, passed.scenario[0], function () { 125 | if (arguments[0] instanceof Array) { 126 | var args = arguments[0]; 127 | } else { 128 | var args = Array.prototype.slice.call(arguments, 0); 129 | } 130 | 131 | passed.el.trigger(passed.scenario[1], args); 132 | }); 133 | } 134 | } 135 | } 136 | 137 | }, 138 | 139 | results : function (uuid, scenarios) { 140 | var count = scenarios.length; 141 | 142 | if (count > 0) { 143 | var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]'); 144 | 145 | while (count--) { 146 | var mq, rule = scenarios[count][2]; 147 | if (this.settings.named_queries.hasOwnProperty(rule)) { 148 | mq = matchMedia(this.settings.named_queries[rule]); 149 | } else { 150 | mq = matchMedia(rule); 151 | } 152 | if (mq.matches) { 153 | return {el: el, scenario: scenarios[count]}; 154 | } 155 | } 156 | } 157 | 158 | return false; 159 | }, 160 | 161 | load : function (type, force_update) { 162 | if (typeof this['cached_' + type] === 'undefined' || force_update) { 163 | this['update_' + type](); 164 | } 165 | 166 | return this['cached_' + type]; 167 | }, 168 | 169 | update_images : function () { 170 | var images = this.S('img[' + this.data_attr + ']'), 171 | count = images.length, 172 | i = count, 173 | loaded_count = 0, 174 | data_attr = this.data_attr; 175 | 176 | this.cache = {}; 177 | this.cached_images = []; 178 | this.images_loaded = (count === 0); 179 | 180 | while (i--) { 181 | loaded_count++; 182 | if (images[i]) { 183 | var str = images[i].getAttribute(data_attr) || ''; 184 | 185 | if (str.length > 0) { 186 | this.cached_images.push(images[i]); 187 | } 188 | } 189 | 190 | if (loaded_count === count) { 191 | this.images_loaded = true; 192 | this.enhance('images'); 193 | } 194 | } 195 | 196 | return this; 197 | }, 198 | 199 | update_nodes : function () { 200 | var nodes = this.S('[' + this.data_attr + ']').not('img'), 201 | count = nodes.length, 202 | i = count, 203 | loaded_count = 0, 204 | data_attr = this.data_attr; 205 | 206 | this.cached_nodes = []; 207 | this.nodes_loaded = (count === 0); 208 | 209 | 210 | while (i--) { 211 | loaded_count++; 212 | var str = nodes[i].getAttribute(data_attr) || ''; 213 | 214 | if (str.length > 0) { 215 | this.cached_nodes.push(nodes[i]); 216 | } 217 | 218 | if(loaded_count === count) { 219 | this.nodes_loaded = true; 220 | this.enhance('nodes'); 221 | } 222 | } 223 | 224 | return this; 225 | }, 226 | 227 | enhance : function (type) { 228 | var i = this['cached_' + type].length; 229 | 230 | while (i--) { 231 | this.object($(this['cached_' + type][i])); 232 | } 233 | 234 | return $(window).trigger('resize'); 235 | }, 236 | 237 | parse_params : function (path, directive, mq) { 238 | return [this.trim(path), this.convert_directive(directive), this.trim(mq)]; 239 | }, 240 | 241 | convert_directive : function (directive) { 242 | 243 | var trimmed = this.trim(directive); 244 | 245 | if (trimmed.length > 0) { 246 | return trimmed; 247 | } 248 | 249 | return 'replace'; 250 | }, 251 | 252 | object : function(el) { 253 | var raw_arr = this.parse_data_attr(el), 254 | scenarios = [], 255 | i = raw_arr.length; 256 | 257 | if (i > 0) { 258 | while (i--) { 259 | var split = raw_arr[i].split(/\((.*?)(\))$/); 260 | 261 | if (split.length > 1) { 262 | var cached_split = split[0].split(/\, /), 263 | params = this.parse_params(cached_split[0], 264 | cached_split[1], split[1]); 265 | 266 | scenarios.push(params); 267 | } 268 | } 269 | } 270 | 271 | return this.store(el, scenarios); 272 | }, 273 | 274 | store : function (el, scenarios) { 275 | var uuid = this.random_str(), 276 | current_uuid = el.data(this.add_namespace('uuid', true)); 277 | 278 | if (this.cache[current_uuid]) return this.cache[current_uuid]; 279 | 280 | el.attr(this.add_namespace('data-uuid'), uuid); 281 | 282 | return this.cache[uuid] = scenarios; 283 | }, 284 | 285 | trim : function(str) { 286 | 287 | if (typeof str === 'string') { 288 | return $.trim(str); 289 | } 290 | 291 | return str; 292 | }, 293 | 294 | set_data_attr: function (init) { 295 | if (init) { 296 | if (this.namespace.length > 0) { 297 | return this.namespace + '-' + this.settings.load_attr; 298 | } 299 | 300 | return this.settings.load_attr; 301 | } 302 | 303 | if (this.namespace.length > 0) { 304 | return 'data-' + this.namespace + '-' + this.settings.load_attr; 305 | } 306 | 307 | return 'data-' + this.settings.load_attr; 308 | }, 309 | 310 | parse_data_attr : function (el) { 311 | var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/), 312 | i = raw.length, 313 | output = []; 314 | 315 | while (i--) { 316 | if (raw[i].replace(/[\W\d]+/, '').length > 4) { 317 | output.push(raw[i]); 318 | } 319 | } 320 | 321 | return output; 322 | }, 323 | 324 | reflow : function () { 325 | this.load('images', true); 326 | this.load('nodes', true); 327 | } 328 | 329 | }; 330 | 331 | }(jQuery, window, window.document)); 332 | --------------------------------------------------------------------------------