(function($){
'use strict';
if(typeof wpcf7==='undefined'||wpcf7===null){
return;
}
wpcf7=$.extend({
cached: 0,
inputs: []
}, wpcf7);
$(function(){
wpcf7.supportHtml5=(function(){
var features={};
var input=document.createElement('input');
features.placeholder='placeholder' in input;
var inputTypes=[ 'email', 'url', 'tel', 'number', 'range', 'date' ];
$.each(inputTypes, function(index, value){
input.setAttribute('type', value);
features[ value ]=input.type!=='text';
});
return features;
})();
$('div.wpcf7 > form').each(function(){
var $form=$(this);
$form.submit(function(event){
if(typeof window.FormData!=='function'){
return;
}
wpcf7.submit($form);
event.preventDefault();
});
$('.wpcf7-submit', $form).after('');
wpcf7.toggleSubmit($form);
$form.on('click', '.wpcf7-acceptance', function(){
wpcf7.toggleSubmit($form);
});
$('.wpcf7-exclusive-checkbox', $form).on('click', 'input:checkbox', function(){
var name=$(this).attr('name');
$form.find('input:checkbox[name="' + name + '"]').not(this).prop('checked', false);
});
$('.wpcf7-list-item.has-free-text', $form).each(function(){
var $freetext=$(':input.wpcf7-free-text', this);
var $wrap=$(this).closest('.wpcf7-form-control');
if($(':checkbox, :radio', this).is(':checked')){
$freetext.prop('disabled', false);
}else{
$freetext.prop('disabled', true);
}
$wrap.on('change', ':checkbox, :radio', function(){
var $cb=$('.has-free-text', $wrap).find(':checkbox, :radio');
if($cb.is(':checked')){
$freetext.prop('disabled', false).focus();
}else{
$freetext.prop('disabled', true);
}});
});
if(! wpcf7.supportHtml5.placeholder){
$('[placeholder]', $form).each(function(){
$(this).val($(this).attr('placeholder'));
$(this).addClass('placeheld');
$(this).focus(function(){
if($(this).hasClass('placeheld')){
$(this).val('').removeClass('placeheld');
}});
$(this).blur(function(){
if(''===$(this).val()){
$(this).val($(this).attr('placeholder'));
$(this).addClass('placeheld');
}});
});
}
if(wpcf7.jqueryUi&&! wpcf7.supportHtml5.date){
$form.find('input.wpcf7-date[type="date"]').each(function(){
$(this).datepicker({
dateFormat: 'yy-mm-dd',
minDate: new Date($(this).attr('min')),
maxDate: new Date($(this).attr('max'))
});
});
}
if(wpcf7.jqueryUi&&! wpcf7.supportHtml5.number){
$form.find('input.wpcf7-number[type="number"]').each(function(){
$(this).spinner({
min: $(this).attr('min'),
max: $(this).attr('max'),
step: $(this).attr('step')
});
});
}
$('.wpcf7-character-count', $form).each(function(){
var $count=$(this);
var name=$count.attr('data-target-name');
var down=$count.hasClass('down');
var starting=parseInt($count.attr('data-starting-value'), 10);
var maximum=parseInt($count.attr('data-maximum-value'), 10);
var minimum=parseInt($count.attr('data-minimum-value'), 10);
var updateCount=function(target){
var $target=$(target);
var length=$target.val().length;
var count=down ? starting - length:length;
$count.attr('data-current-value', count);
$count.text(count);
if(maximum&&maximum < length){
$count.addClass('too-long');
}else{
$count.removeClass('too-long');
}
if(minimum&&length < minimum){
$count.addClass('too-short');
}else{
$count.removeClass('too-short');
}};
$(':input[name="' + name + '"]', $form).each(function(){
updateCount(this);
$(this).keyup(function(){
updateCount(this);
});
});
});
$form.on('change', '.wpcf7-validates-as-url', function(){
var val=$.trim($(this).val());
if(val&&! val.match(/^[a-z][a-z0-9.+-]*:/i)){
val=val.replace(/^\/+/, '');
val='http://' + val;
}
$(this).val(val);
});
if(wpcf7.cached){
wpcf7.refill($form);
}});
});
wpcf7.getId=function(form){
return parseInt($('input[name="_wpcf7"]', form).val(), 10);
};
wpcf7.submit=function(form){
var $form=$(form);
$('[placeholder].placeheld', $form).each(function(i, n){
$(n).val('');
});
wpcf7.clearResponse($form);
$('.ajax-loader', $form).addClass('is-active');
if(typeof window.FormData!=='function'){
return;
}
var formData=new FormData($form.get(0));
var ajaxSuccess=function(data, status, xhr, $form){
var detail={
id: $(data.into).attr('id'),
status: data.status,
inputs: []
};
$.each($form.serializeArray(), function(i, field){
if('_wpcf7'==field.name){
detail.contactFormId=field.value;
}else if('_wpcf7_version'==field.name){
detail.pluginVersion=field.value;
}else if('_wpcf7_locale'==field.name){
detail.contactFormLocale=field.value;
}else if('_wpcf7_unit_tag'==field.name){
detail.unitTag=field.value;
}else if('_wpcf7_container_post'==field.name){
detail.containerPostId=field.value;
}else if(field.name.match(/^_/)){
}else{
detail.inputs.push(field);
}});
var $message=$('.wpcf7-response-output', $form);
switch(data.status){
case 'validation_failed':
$.each(data.invalidFields, function(i, n){
$(n.into, $form).each(function(){
wpcf7.notValidTip(this, n.message);
$('.wpcf7-form-control', this).addClass('wpcf7-not-valid');
$('[aria-invalid]', this).attr('aria-invalid', 'true');
});
});
$message.addClass('wpcf7-validation-errors');
$form.addClass('invalid');
wpcf7.triggerEvent(data.into, 'invalid', detail);
break;
case 'spam':
$message.addClass('wpcf7-spam-blocked');
$form.addClass('spam');
$('[name="g-recaptcha-response"]', $form).each(function(){
if(''===$(this).val()){
var $recaptcha=$(this).closest('.wpcf7-form-control-wrap');
wpcf7.notValidTip($recaptcha, wpcf7.recaptcha.messages.empty);
}});
wpcf7.triggerEvent(data.into, 'spam', detail);
break;
case 'mail_sent':
$message.addClass('wpcf7-mail-sent-ok');
$form.addClass('sent');
if(data.onSentOk){
$.each(data.onSentOk, function(i, n){ eval(n) });
}
wpcf7.triggerEvent(data.into, 'mailsent', detail);
break;
case 'mail_failed':
case 'acceptance_missing':
default:
$message.addClass('wpcf7-mail-sent-ng');
$form.addClass('failed');
wpcf7.triggerEvent(data.into, 'mailfailed', detail);
}
wpcf7.refill($form, data);
if(data.onSubmit){
$.each(data.onSubmit, function(i, n){ eval(n) });
}
wpcf7.triggerEvent(data.into, 'submit', detail);
if('mail_sent'==data.status){
$form.each(function(){
this.reset();
});
}
$form.find('[placeholder].placeheld').each(function(i, n){
$(n).val($(n).attr('placeholder'));
});
$message.append(data.message).slideDown('fast');
$message.attr('role', 'alert');
$('.screen-reader-response', $form.closest('.wpcf7')).each(function(){
var $response=$(this);
$response.html('').attr('role', '').append(data.message);
if(data.invalidFields){
var $invalids=$('
');
$.each(data.invalidFields, function(i, n){
if(n.idref){
var $li=$('').append($('').attr('href', '#' + n.idref).append(n.message));
}else{
var $li=$('').append(n.message);
}
$invalids.append($li);
});
$response.append($invalids);
}
$response.attr('role', 'alert').focus();
});
};
$.ajax({
type: 'POST',
url: wpcf7.apiSettings.root + wpcf7.apiSettings.namespace +
'/contact-forms/' + wpcf7.getId($form) + '/feedback',
data: formData,
dataType: 'json',
processData: false,
contentType: false
}).done(function(data, status, xhr){
ajaxSuccess(data, status, xhr, $form);
$('.ajax-loader', $form).removeClass('is-active');
}).fail(function(xhr, status, error){
var $e=$('').text(error.message);
$form.after($e);
});
};
wpcf7.triggerEvent=function(target, name, detail){
var $target=$(target);
var event=new CustomEvent('wpcf7' + name, {
bubbles: true,
detail: detail
});
$target.get(0).dispatchEvent(event);
$target.trigger('wpcf7:' + name, detail);
$target.trigger(name + '.wpcf7', detail);
};
wpcf7.toggleSubmit=function(form, state){
var $form=$(form);
var $submit=$('input:submit', $form);
if(typeof state!=='undefined'){
$submit.prop('disabled', ! state);
return;
}
if($form.hasClass('wpcf7-acceptance-as-validation')){
return;
}
$submit.prop('disabled', false);
$('input:checkbox.wpcf7-acceptance', $form).each(function(){
var $a=$(this);
if($a.hasClass('wpcf7-invert')&&$a.is(':checked')
|| ! $a.hasClass('wpcf7-invert')&&! $a.is(':checked')){
$submit.prop('disabled', true);
return false;
}});
};
wpcf7.notValidTip=function(target, message){
var $target=$(target);
$('.wpcf7-not-valid-tip', $target).remove();
$('')
.text(message).appendTo($target);
if($target.is('.use-floating-validation-tip *')){
var fadeOut=function(target){
$(target).not(':hidden').animate({
opacity: 0
}, 'fast', function(){
$(this).css({ 'z-index': -100 });
});
}
$target.on('mouseover', '.wpcf7-not-valid-tip', function(){
fadeOut(this);
});
$target.on('focus', ':input', function(){
fadeOut($('.wpcf7-not-valid-tip', $target));
});
}}
wpcf7.refill=function(form, data){
var $form=$(form);
var refillCaptcha=function($form, items){
$.each(items, function(i, n){
$form.find(':input[name="' + i + '"]').val('');
$form.find('img.wpcf7-captcha-' + i).attr('src', n);
var match=/([0-9]+)\.(png|gif|jpeg)$/.exec(n);
$form.find('input:hidden[name="_wpcf7_captcha_challenge_' + i + '"]').attr('value', match[ 1 ]);
});
};
var refillQuiz=function($form, items){
$.each(items, function(i, n){
$form.find(':input[name="' + i + '"]').val('');
$form.find(':input[name="' + i + '"]').siblings('span.wpcf7-quiz-label').text(n[ 0 ]);
$form.find('input:hidden[name="_wpcf7_quiz_answer_' + i + '"]').attr('value', n[ 1 ]);
});
};
if(typeof data==='undefined'){
$.ajax({
type: 'GET',
url: wpcf7.apiSettings.root + wpcf7.apiSettings.namespace +
'/contact-forms/' + wpcf7.getId($form) + '/refill',
dataType: 'json'
}).done(function(data, status, xhr){
if(data.captcha){
refillCaptcha($form, data.captcha);
}
if(data.quiz){
refillQuiz($form, data.quiz);
}});
}else{
if(data.captcha){
refillCaptcha($form, data.captcha);
}
if(data.quiz){
refillQuiz($form, data.quiz);
}}
};
wpcf7.clearResponse=function(form){
var $form=$(form);
$form.removeClass('invalid spam sent failed');
$form.siblings('.screen-reader-response').html('').attr('role', '');
$('.wpcf7-not-valid-tip', $form).remove();
$('[aria-invalid]', $form).attr('aria-invalid', 'false');
$('.wpcf7-form-control', $form).removeClass('wpcf7-not-valid');
$('.wpcf7-response-output', $form)
.hide().empty().removeAttr('role')
.removeClass('wpcf7-mail-sent-ok wpcf7-mail-sent-ng wpcf7-validation-errors wpcf7-spam-blocked');
};})(jQuery);
(function (){
if(typeof window.CustomEvent==="function") return false;
function CustomEvent(event, params){
params=params||{ bubbles: false, cancelable: false, detail: undefined };
var evt=document.createEvent('CustomEvent');
evt.initCustomEvent(event,
params.bubbles, params.cancelable, params.detail);
return evt;
}
CustomEvent.prototype=window.Event.prototype;
window.CustomEvent=CustomEvent;
})();
;(function($){
"use strict";
$.equalizer=function(el, options){
var o, base=this;
base.$el=$(el);
base.$el.data("equalizer", base);
base.init=function(){
base.options=o = $.extend({}, $.equalizer.defaultOptions, options);
base.$col=base.$el.find(o.columns);
var t=base.$col.find('.equalizer-inner').length;
o.min=parseInt(o.min, 10)||0;
o.max=parseInt(o.max, 10)||0;
base.hasMax=(o.max===0) ? false:true;
base.hasMin=(o.min===0) ? false:true;
base.curRowTop=0;
base.isEnabled=true;
base.useHeight=(/^o/.test(o.useHeight)) ? 'outerHeight':/^i/.test(o.useHeight) ? 'innerHeight':'height';
if(!t){
base.$col.wrapInner('');
}
if(!t&&o.resizeable){
$(window).resize(function(){
clearTimeout(base.throttle);
base.throttle=setTimeout(function(){
if(o.breakpoint){
base.checkBreakpoint();
}
base.update();
}, 100);
});
}
base.$el
.unbind('enable.equalizer disable.equalizer')
.bind('enable.equalizer disable.equalizer', function(e){
base.enable(e.type==='enable');
});
base.checkBreakpoint();
base.update();
};
base.checkBreakpoint=function(){
var w=o.breakpoint&&base.$el.width()||0;
if(w&&w < o.breakpoint){
base.suspend(false);
}else if(w&&base.$el.hasClass(o.disabled)&&w > o.breakpoint){
base.suspend();
}};
base.checkBoxSizing=function(){
var v=(function(version){
version[0]=parseInt(version[0], 10);
return (version[0] > 1)||(version[0]===1&&parseInt(version[1], 10) >=8);
})($.fn.jquery.split("."));
if(v){ return false; }
var i, s=['boxSizing', 'MozBoxSizing', 'WebkitBoxSizing', 'msBoxSizing'],
l=s.length;
for(i=0; i < l ; i++){
if(base.$col.css(s[i])==='border-box'){
return true;
}}
return false;
};
base.update=function(){
if(base.$el.hasClass(o.disabled)||!base.isEnabled){ return; }
base.hasBoxSizing=base.checkBoxSizing();
base.padding=(base.hasBoxSizing) ? parseInt(base.$col.css('padding-top'), 10) + parseInt(base.$col.css('padding-bottom'), 10):0;
base.curMax=o.min;
base.$col
.removeClass(o.overflow)
.each(function(){
var $this=$(this),
$el=$this.find('span.equalizer-inner');
base.curTop=$this.offset().top;
if(base.curRowTop!==base.curTop){
if(base.hasMax&&base.curMax > o.max){
base.curMax=o.max;
base.curRows.addClass(o.overflow);
}
if(base.curRows){ base.curRows.height(base.curMax + base.padding); }
base.curMax=$el[base.useHeight]();
base.curMax=(base.hasMin) ? Math.max(o.min, base.curMax):base.curMax;
base.curRowTop=base.curTop;
base.curRows=$this;
}else{
base.curMax=Math.max(base.curMax, $el[base.useHeight]());
base.curMax=(base.hasMax&&base.curMax > o.max) ?
o.max :
(base.hasMin&&base.curMax < o.min) ? o.min:base.curMax;
base.curRows=base.curRows.add($this);
}
if(base.curRows){
base.curRows.height(base.curMax + base.padding);
if(base.hasMax&&base.curMax >=o.max){
base.curRows.addClass(o.overflow);
}}
});
};
base.suspend=function(flag){
if(flag!==false){
base.$el.removeClass(o.disabled);
}else{
base.$el.addClass(o.disabled);
base.$col
.removeClass(o.overflow)
.css('height', '');
}
base.update();
};
base.enable=function(flag){
base.isEnabled=flag!==false;
base.suspend(flag);
};
base.init();
};
$.equalizer.defaultOptions={
columns:'> div',
useHeight:'height',
resizeable:true,
min:0,
max:0,
breakpoint:null,
disabled:'noresize',
overflow:'overflowed'
};
$.fn.equalizer=function(options){
return this.each(function(){
var equalizer=$(this).data('equalizer');
if(!equalizer){
(new $.equalizer(this, options));
}else{
equalizer.update();
}});
};
$.fn.getequalizer=function(){
return this.data("equalizer");
};})(jQuery);
!function(a,b){function c(){y=D=z=A=B=C=K}function d(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])}function e(a){return parseFloat(a)||0}function f(){F={top:b.pageYOffset,left:b.pageXOffset}}function g(){return b.pageXOffset!=F.left?(f(),void z()):void(b.pageYOffset!=F.top&&(f(),i()))}function h(){setTimeout(function(){b.pageYOffset!=F.top&&(F.top=b.pageYOffset,i())},0)}function i(){for(var a=H.length-1;a>=0;a--)j(H[a])}function j(a){if(a.inited){var b=F.top<=a.limit.start?0:F.top>=a.limit.end?2:1;a.mode!=b&&p(a,b)}}function k(){for(var a=H.length-1;a>=0;a--)if(H[a].inited){var b=Math.abs(t(H[a].clone)-H[a].docOffsetTop),c=Math.abs(H[a].parent.node.offsetHeight-H[a].parent.height);if(b>=2||c>=2)return!1}return!0}function l(a){isNaN(parseFloat(a.computed.top))||a.isCell||"none"==a.computed.display||(a.inited=!0,a.clone||q(a),"absolute"!=a.parent.computed.position&&"relative"!=a.parent.computed.position&&(a.parent.node.style.position="relative"),j(a),a.parent.height=a.parent.node.offsetHeight,a.docOffsetTop=t(a.clone))}function m(a){var b=!0;a.clone&&r(a),d(a.node.style,a.css);for(var c=H.length-1;c>=0;c--)if(H[c].node!==a.node&&H[c].parent.node===a.parent.node){b=!1;break}b&&(a.parent.node.style.position=a.parent.css.position),a.mode=-1}function n(){for(var a=H.length-1;a>=0;a--)l(H[a])}function o(){for(var a=H.length-1;a>=0;a--)m(H[a])}function p(a,b){var c=a.node.style;switch(b){case 0:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top=a.offset.top+"px",c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 1:c.position="fixed",c.left=a.box.left+"px",c.right=a.box.right+"px",c.top=a.css.top,c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 2:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top="auto",c.bottom=0,c.width="auto",c.marginLeft=0,c.marginRight=0}a.mode=b}function q(a){a.clone=document.createElement("div");var b=a.node.nextSibling||a.node,c=a.clone.style;c.height=a.height+"px",c.width=a.width+"px",c.marginTop=a.computed.marginTop,c.marginBottom=a.computed.marginBottom,c.marginLeft=a.computed.marginLeft,c.marginRight=a.computed.marginRight,c.padding=c.border=c.borderSpacing=0,c.fontSize="1em",c.position="static",c.cssFloat=a.computed.cssFloat,a.node.parentNode.insertBefore(a.clone,b)}function r(a){a.clone.parentNode.removeChild(a.clone),a.clone=void 0}function s(a){var b=getComputedStyle(a),c=a.parentNode,d=getComputedStyle(c),f=a.style.position;a.style.position="relative";var g={top:b.top,marginTop:b.marginTop,marginBottom:b.marginBottom,marginLeft:b.marginLeft,marginRight:b.marginRight,cssFloat:b.cssFloat,display:b.display},h={top:e(b.top),marginBottom:e(b.marginBottom),paddingLeft:e(b.paddingLeft),paddingRight:e(b.paddingRight),borderLeftWidth:e(b.borderLeftWidth),borderRightWidth:e(b.borderRightWidth)};a.style.position=f;var i={position:a.style.position,top:a.style.top,bottom:a.style.bottom,left:a.style.left,right:a.style.right,width:a.style.width,marginTop:a.style.marginTop,marginLeft:a.style.marginLeft,marginRight:a.style.marginRight},j=u(a),k=u(c),l={node:c,css:{position:c.style.position},computed:{position:d.position},numeric:{borderLeftWidth:e(d.borderLeftWidth),borderRightWidth:e(d.borderRightWidth),borderTopWidth:e(d.borderTopWidth),borderBottomWidth:e(d.borderBottomWidth)}},m={node:a,box:{left:j.win.left,right:J.clientWidth-j.win.right},offset:{top:j.win.top-k.win.top-l.numeric.borderTopWidth,left:j.win.left-k.win.left-l.numeric.borderLeftWidth,right:-j.win.right+k.win.right-l.numeric.borderRightWidth},css:i,isCell:"table-cell"==b.display,computed:g,numeric:h,width:j.win.right-j.win.left,height:j.win.bottom-j.win.top,mode:-1,inited:!1,parent:l,limit:{start:j.doc.top-h.top,end:k.doc.top+c.offsetHeight-l.numeric.borderBottomWidth-a.offsetHeight-h.top-h.marginBottom}};return m}function t(a){for(var b=0;a;)b+=a.offsetTop,a=a.offsetParent;return b}function u(a){var c=a.getBoundingClientRect();return{doc:{top:c.top+b.pageYOffset,left:c.left+b.pageXOffset},win:c}}function v(){G=setInterval(function(){!k()&&z()},500)}function w(){clearInterval(G)}function x(){I&&(document[L]?w():v())}function y(){I||(f(),n(),b.addEventListener("scroll",g),b.addEventListener("wheel",h),b.addEventListener("resize",z),b.addEventListener("orientationchange",z),a.addEventListener(M,x),v(),I=!0)}function z(){if(I){o();for(var a=H.length-1;a>=0;a--)H[a]=s(H[a].node);n()}}function A(){b.removeEventListener("scroll",g),b.removeEventListener("wheel",h),b.removeEventListener("resize",z),b.removeEventListener("orientationchange",z),a.removeEventListener(M,x),w(),I=!1}function B(){A(),o()}function C(){for(B();H.length;)H.pop()}function D(a){for(var b=H.length-1;b>=0;b--)if(H[b].node===a)return;var c=s(a);H.push(c),I?l(c):y()}function E(a){for(var b=H.length-1;b>=0;b--)H[b].node===a&&(m(H[b]),H.splice(b,1))}var F,G,H=[],I=!1,J=a.documentElement,K=function(){},L="hidden",M="visibilitychange";void 0!==a.webkitHidden&&(L="webkitHidden",M="webkitvisibilitychange"),b.getComputedStyle||c();for(var N=["","-webkit-","-moz-","-ms-"],O=document.createElement("div"),P=N.length-1;P>=0;P--){try{O.style.position=N[P]+"sticky"}catch(Q){}""!=O.style.position&&c()}f(),b.Stickyfill={stickies:H,add:D,remove:E,init:y,rebuild:z,pause:A,stop:B,kill:C}}(document,window),window.jQuery&&!function($){$.fn.Stickyfill=function(){return this.each(function(){Stickyfill.add(this)}),this}}(window.jQuery);
!function(a){"use strict";function b(){}function c(){try{return document.activeElement}catch(a){}}function d(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return!0;return!1}function e(a,b,c){return a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent?a.attachEvent("on"+b,c):void 0}function f(a,b){var c;a.createTextRange?(c=a.createTextRange(),c.move("character",b),c.select()):a.selectionStart&&(a.focus(),a.setSelectionRange(b,b))}function g(a,b){try{return a.type=b,!0}catch(c){return!1}}function h(a,b){if(a&&a.getAttribute(B))b(a);else for(var c,d=a?a.getElementsByTagName("input"):N,e=a?a.getElementsByTagName("textarea"):O,f=d?d.length:0,g=e?e.length:0,h=f+g,i=0;h>i;i++)c=f>i?d[i]:e[i-f],b(c)}function i(a){h(a,k)}function j(a){h(a,l)}function k(a,b){var c=!!b&&a.value!==b,d=a.value===a.getAttribute(B);if((c||d)&&"true"===a.getAttribute(C)){a.removeAttribute(C),a.value=a.value.replace(a.getAttribute(B),""),a.className=a.className.replace(A,"");var e=a.getAttribute(I);parseInt(e,10)>=0&&(a.setAttribute("maxLength",e),a.removeAttribute(I));var f=a.getAttribute(D);return f&&(a.type=f),!0}return!1}function l(a){var b=a.getAttribute(B);if(""===a.value&&b){a.setAttribute(C,"true"),a.value=b,a.className+=" "+z;var c=a.getAttribute(I);c||(a.setAttribute(I,a.maxLength),a.removeAttribute("maxLength"));var d=a.getAttribute(D);return d?a.type="text":"password"===a.type&&g(a,"text")&&a.setAttribute(D,"password"),!0}return!1}function m(a){return function(){P&&a.value===a.getAttribute(B)&&"true"===a.getAttribute(C)?f(a,0):k(a)}}function n(a){return function(){l(a)}}function o(a){return function(){i(a)}}function p(a){return function(b){return v=a.value,"true"===a.getAttribute(C)&&v===a.getAttribute(B)&&d(x,b.keyCode)?(b.preventDefault&&b.preventDefault(),!1):void 0}}function q(a){return function(){k(a,v),""===a.value&&(a.blur(),f(a,0))}}function r(a){return function(){a===c()&&a.value===a.getAttribute(B)&&"true"===a.getAttribute(C)&&f(a,0)}}function s(a){var b=a.form;b&&"string"==typeof b&&(b=document.getElementById(b),b.getAttribute(E)||(e(b,"submit",o(b)),b.setAttribute(E,"true"))),e(a,"focus",m(a)),e(a,"blur",n(a)),P&&(e(a,"keydown",p(a)),e(a,"keyup",q(a)),e(a,"click",r(a))),a.setAttribute(F,"true"),a.setAttribute(B,T),(P||a!==c())&&l(a)}var t=document.createElement("input"),u=void 0!==t.placeholder;if(a.Placeholders={nativeSupport:u,disable:u?b:i,enable:u?b:j},!u){var v,w=["text","search","url","tel","email","password","number","textarea"],x=[27,33,34,35,36,37,38,39,40,8,46],y="#ccc",z="placeholdersjs",A=new RegExp("(?:^|\\s)"+z+"(?!\\S)"),B="data-placeholder-value",C="data-placeholder-active",D="data-placeholder-type",E="data-placeholder-submit",F="data-placeholder-bound",G="data-placeholder-focus",H="data-placeholder-live",I="data-placeholder-maxlength",J=100,K=document.getElementsByTagName("head")[0],L=document.documentElement,M=a.Placeholders,N=document.getElementsByTagName("input"),O=document.getElementsByTagName("textarea"),P="false"===L.getAttribute(G),Q="false"!==L.getAttribute(H),R=document.createElement("style");R.type="text/css";var S=document.createTextNode("."+z+" {color:"+y+";}");R.styleSheet?R.styleSheet.cssText=S.nodeValue:R.appendChild(S),K.insertBefore(R,K.firstChild);for(var T,U,V=0,W=N.length+O.length;W>V;V++)U=Va;a++)U=a=0){
return this.settings.strings.inPast;
}
var seconds=Math.abs(distanceMillis) / 1000;
var minutes=seconds / 60;
var hours=minutes / 60;
var days=hours / 24;
var years=days / 365;
function substitute(stringOrFunction, number){
var string=$.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis):stringOrFunction;
var value=($l.numbers&&$l.numbers[number])||number;
return string.replace(/%d/i, value);
}
var words=seconds < 45&&substitute($l.seconds, Math.round(seconds)) ||
seconds < 90&&substitute($l.minute, 1) ||
minutes < 45&&substitute($l.minutes, Math.round(minutes)) ||
minutes < 90&&substitute($l.hour, 1) ||
hours < 24&&substitute($l.hours, Math.round(hours)) ||
hours < 42&&substitute($l.day, 1) ||
days < 30&&substitute($l.days, Math.round(days)) ||
days < 45&&substitute($l.month, 1) ||
days < 365&&substitute($l.months, Math.round(days / 30)) ||
years < 1.5&&substitute($l.year, 1) ||
substitute($l.years, Math.round(years));
var separator=$l.wordSeparator||"";
if($l.wordSeparator===undefined){ separator=" "; }
return $.trim([prefix, words, suffix].join(separator));
},
parse: function(iso8601){
var s=$.trim(iso8601);
s=s.replace(/\.\d+/,"");
s=s.replace(/-/,"/").replace(/-/,"/");
s=s.replace(/T/," ").replace(/Z/," UTC");
s=s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2");
s=s.replace(/([\+\-]\d\d)$/," $100");
return new Date(s);
},
datetime: function(elem){
var iso8601=$t.isTime(elem) ? $(elem).attr("datetime"):$(elem).attr("title");
return $t.parse(iso8601);
},
isTime: function(elem){
return $(elem).get(0).tagName.toLowerCase()==="time";
}});
var functions={
init: function(){
var refresh_el=$.proxy(refresh, this);
refresh_el();
var $s=$t.settings;
if($s.refreshMillis > 0){
this._timeagoInterval=setInterval(refresh_el, $s.refreshMillis);
}},
update: function(timestamp){
var date=(timestamp instanceof Date) ? timestamp:$t.parse(timestamp);
$(this).data('timeago', { datetime: date });
if($t.settings.localeTitle) $(this).attr("title", date.toLocaleString());
refresh.apply(this);
},
updateFromDOM: function(){
$(this).data('timeago', { datetime: $t.parse($t.isTime(this) ? $(this).attr("datetime"):$(this).attr("title")) });
refresh.apply(this);
},
dispose: function (){
if(this._timeagoInterval){
window.clearInterval(this._timeagoInterval);
this._timeagoInterval=null;
}}
};
$.fn.timeago=function(action, options){
var fn=action ? functions[action]:functions.init;
if(!fn){
throw new Error("Unknown function name '"+ action +"' for timeago");
}
this.each(function(){
fn.call(this, options);
});
return this;
};
function refresh(){
var $s=$t.settings;
if($s.autoDispose&&!$.contains(document.documentElement,this)){
$(this).timeago("dispose");
return this;
}
var data=prepareData(this);
if(!isNaN(data.datetime)){
if($s.cutoff==0||Math.abs(distance(data.datetime)) < $s.cutoff){
$(this).text(inWords(data.datetime));
}}
return this;
}
function prepareData(element){
element=$(element);
if(!element.data("timeago")){
element.data("timeago", { datetime: $t.datetime(element) });
var text=$.trim(element.text());
if($t.settings.localeTitle){
element.attr("title", element.data('timeago').datetime.toLocaleString());
}else if(text.length > 0&&!($t.isTime(element)&&element.attr("title"))){
element.attr("title", text);
}}
return element.data("timeago");
}
function inWords(date){
return $t.inWords(distance(date));
}
function distance(date){
return (new Date().getTime() - date.getTime());
}
document.createElement("abbr");
document.createElement("time");
}));
jQuery.timeago.settings.strings={
prefixAgo: null,
prefixFromNow: null,
suffixAgo: "ago",
suffixFromNow: "from now",
seconds: "less than a minute",
minute: "about a minute",
minutes: "%d minutes",
hour: "about an hour",
hours: "about %d hours",
day: "a day",
days: "%d days",
month: "about a month",
months: "%d months",
year: "about a year",
years: "%d years",
wordSeparator: " ",
numbers: []
};
window.matchMedia||(window.matchMedia=function(){
"use strict";
var styleMedia=(window.styleMedia||window.media);
if(!styleMedia){
var style=document.createElement('style'),
script=document.getElementsByTagName('script')[0],
info=null;
style.type='text/css';
style.id='matchmediajs-test';
script.parentNode.insertBefore(style, script);
info=('getComputedStyle' in window)&&window.getComputedStyle(style, null)||style.currentStyle;
styleMedia={
matchMedium: function(media){
var text='@media ' + media + '{ #matchmediajs-test { width: 1px; }}';
if(style.styleSheet){
style.styleSheet.cssText=text;
}else{
style.textContent=text;
}
return info.width==='1px';
}};}
return function(media){
return {
matches: styleMedia.matchMedium(media||'all'),
media: media||'all'
};};
}());
(function(){
if(window.matchMedia&&window.matchMedia('all').addListener){
return false;
}
var localMatchMedia=window.matchMedia,
hasMediaQueries=localMatchMedia('only all').matches,
isListening=false,
timeoutID=0,
queries=[],
handleChange=function(evt){
clearTimeout(timeoutID);
timeoutID=setTimeout(function(){
for (var i=0, il=queries.length; i < il; i++){
var mql=queries[i].mql,
listeners=queries[i].listeners||[],
matches=localMatchMedia(mql.media).matches;
if(matches!==mql.matches){
mql.matches=matches;
for (var j=0, jl=listeners.length; j < jl; j++){
listeners[j].call(window, mql);
}}
}}, 30);
};
window.matchMedia=function(media){
var mql=localMatchMedia(media),
listeners=[],
index=0;
mql.addListener=function(listener){
if(!hasMediaQueries){
return;
}
if(!isListening){
isListening=true;
window.addEventListener('resize', handleChange, true);
}
if(index===0){
index=queries.push({
mql:mql,
listeners:listeners
});
}
listeners.push(listener);
};
mql.removeListener=function(listener){
for (var i=0, il=listeners.length; i < il; i++){
if(listeners[i]===listener){
listeners.splice(i, 1);
}}
};
return mql;
};}());
window.matchMedia||(window.matchMedia=function(){"use strict";var a=window.styleMedia||window.media;if(!a){var b=document.createElement("style"),c=document.getElementsByTagName("script")[0],d=null;b.type="text/css",b.id="matchmediajs-test",c.parentNode.insertBefore(b,c),d="getComputedStyle"in window&&window.getComputedStyle(b,null)||b.currentStyle,a={matchMedium:function(a){var c="@media "+a+"{ #matchmediajs-test { width: 1px; }}";return b.styleSheet?b.styleSheet.cssText=c:b.textContent=c,"1px"===d.width}}}return function(b){return{matches:a.matchMedium(b||"all"),media:b||"all"}}}()),function(a,b,c){"use strict";function d(b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b:"function"==typeof define&&define.amd&&define("picturefill",function(){return b}),"object"==typeof a&&(a.picturefill=b)}function e(a){var b,c,d,e,f,i=a||{};b=i.elements||g.getAllElements();for(var j=0,k=b.length;k>j;j++)if(c=b[j],d=c.parentNode,e=void 0,f=void 0,"IMG"===c.nodeName.toUpperCase()&&(c[g.ns]||(c[g.ns]={}),i.reevaluate||!c[g.ns].evaluated)){if(d&&"PICTURE"===d.nodeName.toUpperCase()){if(g.removeVideoShim(d),e=g.getMatch(c,d),e===!1)continue}else e=void 0;(d&&"PICTURE"===d.nodeName.toUpperCase()||!g.sizesSupported&&c.srcset&&h.test(c.srcset))&&g.dodgeSrcset(c),e?(f=g.processSourceSet(e),g.applyBestCandidate(f,c)):(f=g.processSourceSet(c),(void 0===c.srcset||c[g.ns].srcset)&&g.applyBestCandidate(f,c)),c[g.ns].evaluated=!0}}function f(){function c(){clearTimeout(d),d=setTimeout(h,60)}g.initTypeDetects(),e();var d,f=setInterval(function(){return e(),/^loaded|^i|^c/.test(b.readyState)?void clearInterval(f):void 0},250),h=function(){e({reevaluate:!0})};a.addEventListener?a.addEventListener("resize",c,!1):a.attachEvent&&a.attachEvent("onresize",c)}if(a.HTMLPictureElement)return void d(function(){});b.createElement("picture");var g=a.picturefill||{},h=/\s+\+?\d+(e\d+)?w/;g.ns="picturefill",function(){g.srcsetSupported="srcset"in c,g.sizesSupported="sizes"in c,g.curSrcSupported="currentSrc"in c}(),g.trim=function(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")},g.makeUrl=function(){var a=b.createElement("a");return function(b){return a.href=b,a.href}}(),g.restrictsMixedContent=function(){return"https:"===a.location.protocol},g.matchesMedia=function(b){return a.matchMedia&&a.matchMedia(b).matches},g.getDpr=function(){return a.devicePixelRatio||1},g.getWidthFromLength=function(a){var c;if(!a||a.indexOf("%")>-1!=!1||!(parseFloat(a)>0||a.indexOf("calc(")>-1))return!1;a=a.replace("vw","%"),g.lengthEl||(g.lengthEl=b.createElement("div"),g.lengthEl.style.cssText="border:0;display:block;font-size:1em;left:0;margin:0;padding:0;position:absolute;visibility:hidden",g.lengthEl.className="helper-from-picturefill-js"),g.lengthEl.style.width="0px";try{g.lengthEl.style.width=a}catch(d){}return b.body.appendChild(g.lengthEl),c=g.lengthEl.offsetWidth,0>=c&&(c=!1),b.body.removeChild(g.lengthEl),c},g.detectTypeSupport=function(b,c){var d=new a.Image;return d.onerror=function(){g.types[b]=!1,e()},d.onload=function(){g.types[b]=1===d.width,e()},d.src=c,"pending"},g.types=g.types||{},g.initTypeDetects=function(){g.types["image/jpeg"]=!0,g.types["image/gif"]=!0,g.types["image/png"]=!0,g.types["image/svg+xml"]=b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1"),g.types["image/webp"]=g.detectTypeSupport("image/webp","data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=")},g.verifyTypeSupport=function(a){var b=a.getAttribute("type");if(null===b||""===b)return!0;var c=g.types[b];return"string"==typeof c&&"pending"!==c?(g.types[b]=g.detectTypeSupport(b,c),"pending"):"function"==typeof c?(c(),"pending"):c},g.parseSize=function(a){var b=/(\([^)]+\))?\s*(.+)/g.exec(a);return{media:b&&b[1],length:b&&b[2]}},g.findWidthFromSourceSize=function(c){for(var d,e=g.trim(c).split(/\s*,\s*/),f=0,h=e.length;h>f;f++){var i=e[f],j=g.parseSize(i),k=j.length,l=j.media;if(k&&(!l||g.matchesMedia(l))&&(d=g.getWidthFromLength(k)))break}return d||Math.max(a.innerWidth||0,b.documentElement.clientWidth)},g.parseSrcset=function(a){for(var b=[];""!==a;){a=a.replace(/^\s+/g,"");var c,d=a.search(/\s/g),e=null;if(-1!==d){c=a.slice(0,d);var f=c.slice(-1);if((","===f||""===c)&&(c=c.replace(/,+$/,""),e=""),a=a.slice(d+1),null===e){var g=a.indexOf(",");-1!==g?(e=a.slice(0,g),a=a.slice(g+1)):(e=a,a="")}}else c=a,a="";(c||e)&&b.push({url:c,descriptor:e})}return b},g.parseDescriptor=function(a,b){var c,d=b||"100vw",e=a&&a.replace(/(^\s+|\s+$)/g,""),f=g.findWidthFromSourceSize(d);if(e)for(var h=e.split(" "),i=h.length-1;i>=0;i--){var j=h[i],k=j&&j.slice(j.length-1);if("h"!==k&&"w"!==k||g.sizesSupported){if("x"===k){var l=j&&parseFloat(j,10);c=l&&!isNaN(l)?l:1}}else c=parseFloat(parseInt(j,10)/f)}return c||1},g.getCandidatesFromSourceSet=function(a,b){for(var c=g.parseSrcset(a),d=[],e=0,f=c.length;f>e;e++){var h=c[e];d.push({url:h.url,resolution:g.parseDescriptor(h.descriptor,b)})}return d},g.dodgeSrcset=function(a){a.srcset&&(a[g.ns].srcset=a.srcset,a.srcset="",a.setAttribute("data-pfsrcset",a[g.ns].srcset))},g.processSourceSet=function(a){var b=a.getAttribute("srcset"),c=a.getAttribute("sizes"),d=[];return"IMG"===a.nodeName.toUpperCase()&&a[g.ns]&&a[g.ns].srcset&&(b=a[g.ns].srcset),b&&(d=g.getCandidatesFromSourceSet(b,c)),d},g.backfaceVisibilityFix=function(a){var b=a.style||{},c="webkitBackfaceVisibility"in b,d=b.zoom;c&&(b.zoom=".999",c=a.offsetWidth,b.zoom=d)},g.setIntrinsicSize=function(){var c={},d=function(a,b,c){b&&a.setAttribute("width",parseInt(b/c,10))};return function(e,f){var h;e[g.ns]&&!a.pfStopIntrinsicSize&&(void 0===e[g.ns].dims&&(e[g.ns].dims=e.getAttribute("width")||e.getAttribute("height")),e[g.ns].dims||(f.url in c?d(e,c[f.url],f.resolution):(h=b.createElement("img"),h.onload=function(){if(c[f.url]=h.width,!c[f.url])try{b.body.appendChild(h),c[f.url]=h.width||h.offsetWidth,b.body.removeChild(h)}catch(a){}e.src===f.url&&d(e,c[f.url],f.resolution),e=null,h.onload=null,h=null},h.src=f.url)))}}(),g.applyBestCandidate=function(a,b){var c,d,e;a.sort(g.ascendingSort),d=a.length,e=a[d-1];for(var f=0;d>f;f++)if(c=a[f],c.resolution>=g.getDpr()){e=c;break}e&&(e.url=g.makeUrl(e.url),b.src!==e.url&&(g.restrictsMixedContent()&&"http:"===e.url.substr(0,"http:".length).toLowerCase()?void 0!==window.console&&console.warn("Blocked mixed content image "+e.url):(b.src=e.url,g.curSrcSupported||(b.currentSrc=b.src),g.backfaceVisibilityFix(b))),g.setIntrinsicSize(b,e))},g.ascendingSort=function(a,b){return a.resolution-b.resolution},g.removeVideoShim=function(a){var b=a.getElementsByTagName("video");if(b.length){for(var c=b[0],d=c.getElementsByTagName("source");d.length;)a.insertBefore(d[0],c);c.parentNode.removeChild(c)}},g.getAllElements=function(){for(var a=[],c=b.getElementsByTagName("img"),d=0,e=c.length;e>d;d++){var f=c[d];("PICTURE"===f.parentNode.nodeName.toUpperCase()||null!==f.getAttribute("srcset")||f[g.ns]&&null!==f[g.ns].srcset)&&a.push(f)}return a},g.getMatch=function(a,b){for(var c,d=b.childNodes,e=0,f=d.length;f>e;e++){var h=d[e];if(1===h.nodeType){if(h===a)return c;if("SOURCE"===h.nodeName.toUpperCase()){null!==h.getAttribute("src")&&void 0!==typeof console&&console.warn("The `src` attribute is invalid on `picture` `source` element; instead, use `srcset`.");var i=h.getAttribute("media");if(h.getAttribute("srcset")&&(!i||g.matchesMedia(i))){var j=g.verifyTypeSupport(h);if(j===!0){c=h;break}if("pending"===j)return!1}}}}return c},f(),e._=g,d(e)}(window,window.document,new window.Image);
!function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.invokeAll("enable")},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical);t&&e&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s],l=o.oldScroll=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=y+l-f,h=w=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
/*
SuperGif
Example usage:
Image tag attributes:
rel:animated_src - If this url is specified, it's loaded into the player instead of src.
This allows a preview frame to be shown until animated gif data is streamed into the canvas
rel:auto_play - Defaults to 1 if not specified. If set to zero, a call to the play() method is needed
Constructor options args
gif Required. The DOM element of an img tag.
loop_mode Optional. Setting this to false will force disable looping of the gif.
auto_play Optional. Same as the rel:auto_play attribute above, this arg overrides the img tag info.
max_width Optional. Scale images over max_width down to max_width. Helpful with mobile.
on_end Optional. Add a callback for when the gif reaches the end of a single loop (one iteration). The first argument passed will be the gif HTMLElement.
loop_delay Optional. The amount of time to pause (in ms) after each single loop (iteration).
draw_while_loading Optional. Determines whether the gif will be drawn to the canvas whilst it is loaded.
show_progress_bar Optional. Only applies when draw_while_loading is set to true.
Instance methods
load(callback) Loads the gif specified by the src or rel:animated_src sttributie of the img tag into a canvas element and then calls callback if one is passed
load_url(src, callback) Loads the gif file specified in the src argument into a canvas element and then calls callback if one is passed
play - Start playing the gif
pause - Stop playing the gif
move_to(i) - Move to frame i of the gif
move_relative(i) - Move i frames ahead (or behind if i < 0)
get_canvas The canvas element that the gif is playing in. Handy for assigning event handlers to.
get_playing Whether or not the gif is currently playing
get_loading Whether or not the gif has finished loading/parsing
get_auto_play Whether or not the gif is set to play automatically
get_length The number of frames in the gif
get_current_frame The index of the currently displayed frame of the gif
For additional customization (viewport inside iframe) these params may be passed:
c_w, c_h - width and height of canvas
vp_t, vp_l, vp_ w, vp_h - top, left, width and height of the viewport
A bonus: few articles to understand what is going on
http://enthusiasms.org/post/16976438906
http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp
http://humpy77.deviantart.com/journal/Frame-Delay-Times-for-Animated-GIFs-214150546
*/
(function (root, factory){
if(typeof define==='function'&&define.amd){
define([], factory);
}else if(typeof exports==='object'){
module.exports=factory();
}else{
root.SuperGif=factory();
}}(this, function (){
var bitsToNum=function (ba){
return ba.reduce(function (s, n){
return s * 2 + n;
}, 0);
};
var byteToBitArr=function (bite){
var a=[];
for (var i=7; i >=0; i--){
a.push(!! (bite & (1 << i)));
}
return a;
};
var Stream=function (data){
this.data=data;
this.len=this.data.length;
this.pos=0;
this.readByte=function (){
if(this.pos >=this.data.length){
throw new Error('Attempted to read past end of stream.');
}
if(data instanceof Uint8Array)
return data[this.pos++];
else
return data.charCodeAt(this.pos++) & 0xFF;
};
this.readBytes=function (n){
var bytes=[];
for (var i=0; i < n; i++){
bytes.push(this.readByte());
}
return bytes;
};
this.read=function (n){
var s='';
for (var i=0; i < n; i++){
s +=String.fromCharCode(this.readByte());
}
return s;
};
this.readUnsigned=function (){
var a=this.readBytes(2);
return (a[1] << 8) + a[0];
};};
var lzwDecode=function (minCodeSize, data){
var pos=0;
var readCode=function (size){
var code=0;
for (var i=0; i < size; i++){
if(data.charCodeAt(pos >> 3) & (1 << (pos & 7))){
code |=1 << i;
}
pos++;
}
return code;
};
var output=[];
var clearCode=1 << minCodeSize;
var eoiCode=clearCode + 1;
var codeSize=minCodeSize + 1;
var dict=[];
var clear=function (){
dict=[];
codeSize=minCodeSize + 1;
for (var i=0; i < clearCode; i++){
dict[i]=[i];
}
dict[clearCode]=[];
dict[eoiCode]=null;
};
var code;
var last;
while (true){
last=code;
code=readCode(codeSize);
if(code===clearCode){
clear();
continue;
}
if(code===eoiCode) break;
if(code < dict.length){
if(last!==clearCode){
dict.push(dict[last].concat(dict[code][0]));
}}else{
if(code!==dict.length) throw new Error('Invalid LZW code.');
dict.push(dict[last].concat(dict[last][0]));
}
output.push.apply(output, dict[code]);
if(dict.length===(1 << codeSize)&&codeSize < 12){
codeSize++;
}}
return output;
};
var parseGIF=function (st, handler){
handler||(handler={});
var parseCT=function (entries){
var ct=[];
for (var i=0; i < entries; i++){
ct.push(st.readBytes(3));
}
return ct;
};
var readSubBlocks=function (){
var size, data;
data='';
do {
size=st.readByte();
data +=st.read(size);
} while (size!==0);
return data;
};
var parseHeader=function (){
var hdr={};
hdr.sig=st.read(3);
hdr.ver=st.read(3);
if(hdr.sig!=='GIF') throw new Error('Not a GIF file.');
hdr.width=st.readUnsigned();
hdr.height=st.readUnsigned();
var bits=byteToBitArr(st.readByte());
hdr.gctFlag=bits.shift();
hdr.colorRes=bitsToNum(bits.splice(0, 3));
hdr.sorted=bits.shift();
hdr.gctSize=bitsToNum(bits.splice(0, 3));
hdr.bgColor=st.readByte();
hdr.pixelAspectRatio=st.readByte();
if(hdr.gctFlag){
hdr.gct=parseCT(1 << (hdr.gctSize + 1));
}
handler.hdr&&handler.hdr(hdr);
};
var parseExt=function (block){
var parseGCExt=function (block){
var blockSize=st.readByte();
var bits=byteToBitArr(st.readByte());
block.reserved=bits.splice(0, 3);
block.disposalMethod=bitsToNum(bits.splice(0, 3));
block.userInput=bits.shift();
block.transparencyGiven=bits.shift();
block.delayTime=st.readUnsigned();
block.transparencyIndex=st.readByte();
block.terminator=st.readByte();
handler.gce&&handler.gce(block);
};
var parseComExt=function (block){
block.comment=readSubBlocks();
handler.com&&handler.com(block);
};
var parsePTExt=function (block){
var blockSize=st.readByte();
block.ptHeader=st.readBytes(12);
block.ptData=readSubBlocks();
handler.pte&&handler.pte(block);
};
var parseAppExt=function (block){
var parseNetscapeExt=function (block){
var blockSize=st.readByte();
block.unknown=st.readByte();
block.iterations=st.readUnsigned();
block.terminator=st.readByte();
handler.app&&handler.app.NETSCAPE&&handler.app.NETSCAPE(block);
};
var parseUnknownAppExt=function (block){
block.appData=readSubBlocks();
handler.app&&handler.app[block.identifier]&&handler.app[block.identifier](block);
};
var blockSize=st.readByte();
block.identifier=st.read(8);
block.authCode=st.read(3);
switch (block.identifier){
case 'NETSCAPE':
parseNetscapeExt(block);
break;
default:
parseUnknownAppExt(block);
break;
}};
var parseUnknownExt=function (block){
block.data=readSubBlocks();
handler.unknown&&handler.unknown(block);
};
block.label=st.readByte();
switch (block.label){
case 0xF9:
block.extType='gce';
parseGCExt(block);
break;
case 0xFE:
block.extType='com';
parseComExt(block);
break;
case 0x01:
block.extType='pte';
parsePTExt(block);
break;
case 0xFF:
block.extType='app';
parseAppExt(block);
break;
default:
block.extType='unknown';
parseUnknownExt(block);
break;
}};
var parseImg=function (img){
var deinterlace=function (pixels, width){
var newPixels=new Array(pixels.length);
var rows=pixels.length / width;
var cpRow=function (toRow, fromRow){
var fromPixels=pixels.slice(fromRow * width, (fromRow + 1) * width);
newPixels.splice.apply(newPixels, [toRow * width, width].concat(fromPixels));
};
var offsets=[0, 4, 2, 1];
var steps=[8, 8, 4, 2];
var fromRow=0;
for (var pass=0; pass < 4; pass++){
for (var toRow=offsets[pass]; toRow < rows; toRow +=steps[pass]){
cpRow(toRow, fromRow)
fromRow++;
}}
return newPixels;
};
img.leftPos=st.readUnsigned();
img.topPos=st.readUnsigned();
img.width=st.readUnsigned();
img.height=st.readUnsigned();
var bits=byteToBitArr(st.readByte());
img.lctFlag=bits.shift();
img.interlaced=bits.shift();
img.sorted=bits.shift();
img.reserved=bits.splice(0, 2);
img.lctSize=bitsToNum(bits.splice(0, 3));
if(img.lctFlag){
img.lct=parseCT(1 << (img.lctSize + 1));
}
img.lzwMinCodeSize=st.readByte();
var lzwData=readSubBlocks();
img.pixels=lzwDecode(img.lzwMinCodeSize, lzwData);
if(img.interlaced){
img.pixels=deinterlace(img.pixels, img.width);
}
handler.img&&handler.img(img);
};
var parseBlock=function (){
var block={};
block.sentinel=st.readByte();
switch (String.fromCharCode(block.sentinel)){
case '!':
block.type='ext';
parseExt(block);
break;
case ',':
block.type='img';
parseImg(block);
break;
case ';':
block.type='eof';
handler.eof&&handler.eof(block);
break;
default:
throw new Error('Unknown block: 0x' + block.sentinel.toString(16));
}
if(block.type!=='eof') setTimeout(parseBlock, 0);
};
var parse=function (){
parseHeader();
setTimeout(parseBlock, 0);
};
parse();
};
var SuperGif=function(opts){
var options={
vp_l: 0,
vp_t: 0,
vp_w: null,
vp_h: null,
c_w: null,
c_h: null
};
for (var i in opts){ options[i]=opts[i] }
if(options.vp_w&&options.vp_h) options.is_vp=true;
var stream;
var hdr;
var loadError=null;
var loading=false;
var transparency=null;
var delay=null;
var disposalMethod=null;
var disposalRestoreFromIdx=0;
var lastDisposalMethod=null;
var frame=null;
var lastImg=null;
var playing=true;
var forward=true;
var ctx_scaled=false;
var frames=[];
var frameOffsets=[];
var gif=options.gif;
if(typeof options.auto_play=='undefined')
options.auto_play=(!gif.getAttribute('rel:auto_play')||gif.getAttribute('rel:auto_play')=='1');
var onEndListener=(options.hasOwnProperty('on_end') ? options.on_end:null);
var loopDelay=(options.hasOwnProperty('loop_delay') ? options.loop_delay:0);
var overrideLoopMode=(options.hasOwnProperty('loop_mode') ? options.loop_mode:'auto');
var drawWhileLoading=(options.hasOwnProperty('draw_while_loading') ? options.draw_while_loading:true);
var showProgressBar=drawWhileLoading ? (options.hasOwnProperty('show_progress_bar') ? options.show_progress_bar:true):false;
var clear=function (){
transparency=null;
delay=null;
lastDisposalMethod=disposalMethod;
disposalMethod=null;
frame=null;
};
var doParse=function (){
try {
parseGIF(stream, handler);
}
catch (err){
doLoadError('parse');
}};
var doText=function (text){
toolbar.innerHTML=text;
toolbar.style.visibility='visible';
};
var setSizes=function(w, h){
canvas.width=w * get_canvas_scale();
canvas.height=h * get_canvas_scale();
toolbar.style.minWidth=(w * get_canvas_scale()) + 'px';
tmpCanvas.width=w;
tmpCanvas.height=h;
tmpCanvas.style.width=w + 'px';
tmpCanvas.style.height=h + 'px';
tmpCanvas.getContext('2d').setTransform(1, 0, 0, 1, 0, 0);
};
var setFrameOffset=function(frame, offset){
if(!frameOffsets[frame]){
frameOffsets[frame]=offset;
return;
}
if(typeof offset.x!=='undefined'){
frameOffsets[frame].x=offset.x;
}
if(typeof offset.y!=='undefined'){
frameOffsets[frame].y=offset.y;
}};
var doShowProgress=function (pos, length, draw){
if(draw&&showProgressBar){
var height=25;
var left, mid, top, width;
if(options.is_vp){
if(!ctx_scaled){
top=(options.vp_t + options.vp_h - height);
height=height;
left=options.vp_l;
mid=left + (pos / length) * options.vp_w;
width=canvas.width;
}else{
top=(options.vp_t + options.vp_h - height) / get_canvas_scale();
height=height / get_canvas_scale();
left=(options.vp_l / get_canvas_scale());
mid=left + (pos / length) * (options.vp_w / get_canvas_scale());
width=canvas.width / get_canvas_scale();
}
if(false){
if(!ctx_scaled){
var l=options.vp_l, t=options.vp_t;
var w=options.vp_w, h=options.vp_h;
}else{
var l=options.vp_l/get_canvas_scale(), t=options.vp_t/get_canvas_scale();
var w=options.vp_w/get_canvas_scale(), h=options.vp_h/get_canvas_scale();
}
ctx.rect(l,t,w,h);
ctx.stroke();
}}else{
top=(canvas.height - height) / (ctx_scaled ? get_canvas_scale():1);
mid=((pos / length) * canvas.width) / (ctx_scaled ? get_canvas_scale():1);
width=canvas.width / (ctx_scaled ? get_canvas_scale():1);
height /=ctx_scaled ? get_canvas_scale():1;
}
ctx.fillStyle='rgba(255,255,255,0.4)';
ctx.fillRect(mid, top, width - mid, height);
ctx.fillStyle='rgba(255,0,22,.8)';
ctx.fillRect(0, top, mid, height);
}};
var doLoadError=function (originOfError){
var drawError=function (){
ctx.fillStyle='black';
ctx.fillRect(0, 0, options.c_w ? options.c_w:hdr.width, options.c_h ? options.c_h:hdr.height);
ctx.strokeStyle='red';
ctx.lineWidth=3;
ctx.moveTo(0, 0);
ctx.lineTo(options.c_w ? options.c_w:hdr.width, options.c_h ? options.c_h:hdr.height);
ctx.moveTo(0, options.c_h ? options.c_h:hdr.height);
ctx.lineTo(options.c_w ? options.c_w:hdr.width, 0);
ctx.stroke();
};
loadError=originOfError;
hdr={
width: gif.width,
height: gif.height
};
frames=[];
drawError();
};
var doHdr=function (_hdr){
hdr=_hdr;
setSizes(hdr.width, hdr.height)
};
var doGCE=function (gce){
pushFrame();
clear();
transparency=gce.transparencyGiven ? gce.transparencyIndex:null;
delay=gce.delayTime;
disposalMethod=gce.disposalMethod;
};
var pushFrame=function (){
if(!frame) return;
frames.push({
data: frame.getImageData(0, 0, hdr.width, hdr.height),
delay: delay
});
frameOffsets.push({ x: 0, y: 0 });
};
var doImg=function (img){
if(!frame) frame=tmpCanvas.getContext('2d');
var currIdx=frames.length;
var ct=img.lctFlag ? img.lct:hdr.gct;
if(currIdx > 0){
if(lastDisposalMethod===3){
frame.putImageData(frames[disposalRestoreFromIdx].data, 0, 0);
}else{
disposalRestoreFromIdx=currIdx - 1;
}
if(lastDisposalMethod===2){
frame.clearRect(lastImg.leftPos, lastImg.topPos, lastImg.width, lastImg.height);
}}
var imgData=frame.getImageData(img.leftPos, img.topPos, img.width, img.height);
var cdd=imgData.data;
img.pixels.forEach(function (pixel, i){
if(pixel!==transparency){
cdd[i * 4 + 0]=ct[pixel][0];
cdd[i * 4 + 1]=ct[pixel][1];
cdd[i * 4 + 2]=ct[pixel][2];
cdd[i * 4 + 3]=255;
}});
imgData.data.set(cdd);
frame.putImageData(imgData, img.leftPos, img.topPos);
if(!ctx_scaled){
ctx.scale(get_canvas_scale(),get_canvas_scale());
ctx_scaled=true;
}
if(drawWhileLoading)
ctx.drawImage(tmpCanvas, 0, 0);
lastImg=img;
};
var player=(function (){
var i=-1;
var iterationCount=0;
var showingInfo=false;
var pinned=false;
var getNextFrameNo=function (){
var delta=(forward ? 1:-1);
return (i + delta + frames.length) % frames.length;
};
var stepFrame=function (amount){
i=i + amount;
putFrame();
};
var completeLoop=function (){
if(onEndListener!==null)
onEndListener(gif);
iterationCount++;
};
var step=(function (){
var stepping=false;
var doStep=function (){
stepping=playing;
if(!stepping) return;
stepFrame(1);
var delay=frames[i].delay * 10;
if(!delay) delay=100;
var nextFrameNo=getNextFrameNo();
if(nextFrameNo===0){
delay +=loopDelay;
setTimeout(completeLoop, delay - 1);
}
if((overrideLoopMode!==false||nextFrameNo!==0||iterationCount < 0))
setTimeout(doStep, delay);
};
return function (){
if(!stepping) setTimeout(doStep, 0);
};}());
var putFrame=function (){
var offset;
i=parseInt(i, 10);
if(i > frames.length - 1){
i=0;
}
if(i < 0){
i=0;
}
offset=frameOffsets[i];
tmpCanvas.getContext("2d").putImageData(frames[i].data, offset.x, offset.y);
ctx.globalCompositeOperation="copy";
ctx.drawImage(tmpCanvas, 0, 0);
};
var play=function (){
playing=true;
step();
};
var pause=function (){
playing=false;
};
return {
init: function (){
if(loadError) return;
if(! (options.c_w&&options.c_h)){
ctx.scale(get_canvas_scale(),get_canvas_scale());
}
if(options.auto_play){
step();
}else{
i=0;
putFrame();
}},
step: step,
play: play,
pause: pause,
playing: playing,
move_relative: stepFrame,
current_frame: function(){ return i; },
length: function(){ return frames.length },
move_to: function(frame_idx){
i=frame_idx;
putFrame();
}}
}());
var doDecodeProgress=function (draw){
doShowProgress(stream.pos, stream.data.length, draw);
};
var doNothing=function (){};
var withProgress=function (fn, draw){
return function (block){
fn(block);
doDecodeProgress(draw);
};};
var handler={
hdr: withProgress(doHdr),
gce: withProgress(doGCE),
com: withProgress(doNothing),
app: {
NETSCAPE: withProgress(doNothing)
},
img: withProgress(doImg, true),
eof: function (block){
pushFrame();
doDecodeProgress(false);
if(! (options.c_w&&options.c_h)){
canvas.width=hdr.width * get_canvas_scale();
canvas.height=hdr.height * get_canvas_scale();
}
player.init();
loading=false;
if(load_callback){
load_callback(gif);
}}
};
var init=function (){
var parent=gif.parentNode;
var div=document.createElement('div');
canvas=document.createElement('canvas');
ctx=canvas.getContext('2d');
toolbar=document.createElement('div');
tmpCanvas=document.createElement('canvas');
div.width=canvas.width=gif.width;
div.height=canvas.height=gif.height;
toolbar.style.minWidth=gif.width + 'px';
div.className='jsgif';
toolbar.className='jsgif_toolbar';
div.appendChild(canvas);
div.appendChild(toolbar);
parent.insertBefore(div, gif);
parent.removeChild(gif);
if(options.c_w&&options.c_h) setSizes(options.c_w, options.c_h);
initialized=true;
};
var get_canvas_scale=function(){
var scale;
if(options.max_width&&hdr&&hdr.width > options.max_width){
scale=options.max_width / hdr.width;
}else{
scale=1;
}
return scale;
}
var canvas, ctx, toolbar, tmpCanvas;
var initialized=false;
var load_callback=false;
var load_setup=function(callback){
if(loading) return false;
if(callback) load_callback=callback;
else load_callback=false;
loading=true;
frames=[];
clear();
disposalRestoreFromIdx=0;
lastDisposalMethod=null;
frame=null;
lastImg=null;
return true;
}
return {
play: player.play,
pause: player.pause,
move_relative: player.move_relative,
move_to: player.move_to,
get_playing:function(){ return player.playing },
get_canvas:function(){ return canvas },
get_canvas_scale:function(){ return get_canvas_scale() },
get_loading:function(){ return loading },
get_auto_play:function(){ return options.auto_play },
get_length:function(){ return player.length() },
get_current_frame: function(){ return player.current_frame() },
load_url: function(src,callback){
if(!load_setup(callback)) return;
var h=new XMLHttpRequest();
h.overrideMimeType('text/plain; charset=x-user-defined');
h.onloadstart=function(){
if(!initialized) init();
};
h.onload=function(e){
stream=new Stream(h.responseText);
setTimeout(doParse, 0);
};
h.onprogress=function (e){
if(e.lengthComputable) doShowProgress(e.loaded, e.total, true);
};
h.onerror=function(){ doLoadError('xhr'); };
h.open('GET', src, true);
h.send();
},
load: function (callback){
this.load_url(gif.getAttribute('rel:animated_src')||gif.src,callback);
},
load_raw: function(arr, callback){
if(!load_setup(callback)) return;
if(!initialized) init();
stream=new Stream(arr);
setTimeout(doParse, 0);
},
set_frame_offset: setFrameOffset
};};
return SuperGif;
}));
!function(a,b,c){var d=window.matchMedia;"undefined"!=typeof module&&module.exports?module.exports=c(d):"function"==typeof define&&define.amd?define(function(){return b[a]=c(d)}):b[a]=c(d)}("enquire",this,function(a){"use strict";function b(a,b){var c,d=0,e=a.length;for(d;e>d&&(c=b(a[d],d),c!==!1);d++);}function c(a){return"[object Array]"===Object.prototype.toString.apply(a)}function d(a){return"function"==typeof a}function e(a){this.options=a,!a.deferSetup&&this.setup()}function f(b,c){this.query=b,this.isUnconditional=c,this.handlers=[],this.mql=a(b);var d=this;this.listener=function(a){d.mql=a,d.assess()},this.mql.addListener(this.listener)}function g(){if(!a)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!a("only all").matches}return e.prototype={setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(a){return this.options===a||this.options.match===a}},f.prototype={addHandler:function(a){var b=new e(a);this.handlers.push(b),this.matches()&&b.on()},removeHandler:function(a){var c=this.handlers;b(c,function(b,d){return b.equals(a)?(b.destroy(),!c.splice(d,1)):void 0})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){b(this.handlers,function(a){a.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var a=this.matches()?"on":"off";b(this.handlers,function(b){b[a]()})}},g.prototype={register:function(a,e,g){var h=this.queries,i=g&&this.browserIsIncapable;return h[a]||(h[a]=new f(a,i)),d(e)&&(e={match:e}),c(e)||(e=[e]),b(e,function(b){d(b)&&(b={match:b}),h[a].addHandler(b)}),this},unregister:function(a,b){var c=this.queries[a];return c&&(b?c.removeHandler(b):(c.clear(),delete this.queries[a])),this}},new g});