PageSourceSearch

https://ajcgroup.com/files/stacks_page_page0.js?rwcache=809021242

js ajcgroup.com collected 2026-10-09 01:46:25 UTC 479,014 bytes, 8,355 lines download raw bytes

1//
2// vein
3//
4
5!function(e,t){"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define("vein",t):this.vein=t()}(0,function(){var e=function(){},t=function(e,t,n){var s,r,l=[],i=[],u=t[document.all?"rules":"cssRules"],o=e.replace(/\s/g,"");for(s=0,r=u.length;s<r;s++)(u[s].selectorText===e||4===u[s].type&&u[s].cssText.replace(/\s/g,"").substring(0,o.length)==o)&&(null===n?i.push(s):l.push(u[s]));for(s=0,r=i.length;s<r;s++)t.deleteRule(i[s]);return l},n=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n+": "+e[n]+";");return t.join("")};e.getStylesheet=function(){return this.element&&document.getElementById("vein")||(this.element=document.createElement("style"),this.element.setAttribute("type","text/css"),this.element.setAttribute("id","vein"),document.getElementsByTagName("head")[0].appendChild(this.element),this.stylesheet=this.element.sheet),this.stylesheet};var s=function(e){return e[document.all?"rules":"cssRules"]},r=function(e,t,n){var r=s(n);n.insertRule?n.insertRule(e+"{"+t+"}",r.length):n.addRule(e,t,r.length)};return e.inject=function(e,l,i){var u,o,h,f,c,a,y,d,g,p,m=(i=function(e){e=e||{};for(var t=1;t<arguments.length;t++)if(arguments[t])for(var n in arguments[t])arguments[t].hasOwnProperty(n)&&(e[n]=arguments[t][n]);return e}({},i)).stylesheet||this.getStylesheet();s(m);for("string"==typeof e&&(e=[e]),u=0,o=e.length;u<o;u++)if("object"==typeof e[u]&&m.insertRule)for(h in e[u])if(0===(f=t(h,m,l)).length)for(c=n(l),g=0,p=e[u][h].length;g<p;g++)r(h,e[u][h][g]+"{"+c+"}",m);else for(y=0,d=f.length;y<d;y++)this.inject(e[u][h],l,{stylesheet:f[y]});else{if(f=t(e[u],m,l),null===l)return;if(0===f.length)c=n(l),r(e[u],c,m);else for(y=0,d=f.length;y<d;y++)for(a in l)l.hasOwnProperty(a)&&(f[y].style.setProperty?f[y].style.setProperty(a,l[a],""):f[y].style.setAttribute(a,l[a],""))}return this},e});
6
7
8//
9// jwlib-utils
10//
11
12(function($){"use strict";jQuery.fn.exists=function(){return jQuery(this).length>0;};jQuery.getParameterByName=function(name,url){if(!url)url=window.location.href;name=name.replace(/[[\]]/g,"\\$&");var regex=new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)"),results=regex.exec(url);if(!results)return null;if(!results[2])return"";return decodeURIComponent(results[2].replace(/\+/g," "));};jQuery.debug=function(){if(window.debug===true)window.debug=1;var maxlevel=parseInt($.getParameterByName("debug")||window.debug)||0;if(maxlevel===0)return;var args=Array.prototype.slice.call(arguments),group="debug",loglevel=1;if(args.length>1&&typeof(args[args.length-1])==="number"){loglevel=args.pop();}
13if(loglevel>maxlevel)return;if(args.length>1&&typeof(args[0])==="string"){group=args.shift();}
14var debugGroup=$.getParameterByName("debugGroup")||window.debugGroup;if(debugGroup&&!group.match(debugGroup))return;console.group(group);args.forEach(function(arg){if(Array.isArray(arg)&&typeof arg[0]!=="object"){console.table(arg);}
15else{console.log(arg);}});console.groupEnd();};jQuery.isMobile=jQuery.isTouch=function(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch||false;};if(jQuery.isTouch())document.documentElement.classList.add("touch");jQuery.clearBrowserCache=function(){$(window).on("pageshow",function(event){if(event.originalEvent.persisted){window.location.reload();}});};jQuery.preloadImages=function(){for(var i=0;i<arguments.length;i++){$("<img />").attr("src",arguments[i]);}};var triggerWindowResize=function(){$(window).trigger("resize");};if(typeof(orientationEvent)==undefined){var orientationEvent=0;}
16$(window).on(orientationEvent,triggerWindowResize).on("load",triggerWindowResize);})(jQuery);
17
18
19//
20// storageapi
21//
22
23/*!
24 * jQuery Cookie Plugin v1.4.1
25 * https://github.com/carhartl/jquery-cookie
26 *
27 * Copyright 2013 Klaus Hartl
28 * Released under the MIT license
29 */
30!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))}}),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(b){var c,d,e,f=arguments.length,g=window[b],h=arguments,i=h[1];if(2>f)throw new Error("Minimum 2 arguments must be given");if(a.isArray(i)){d={};for(var j in i){c=i[j];try{d[c]=JSON.parse(g.getItem(c))}catch(k){d[c]=g.getItem(c)}}return d}if(2!=f){try{d=JSON.parse(g.getItem(i))}catch(k){throw new ReferenceError(i+" is not defined in this storage")}for(var j=2;f-1>j;j++)if(d=d[h[j]],void 0===d)throw new ReferenceError([].slice.call(h,1,j+1).join(".")+" is not defined in this storage");if(a.isArray(h[j])){e=d,d={};for(var l in h[j])d[h[j][l]]=e[h[j][l]];return d}return d[h[j]]}try{return JSON.parse(g.getItem(i))}catch(k){return g.getItem(i)}}function c(b){var c,d,e=arguments.length,f=window[b],g=arguments,h=g[1],i=g[2],j={};if(2>e||!a.isPlainObject(h)&&3>e)throw new Error("Minimum 3 arguments must be given or second parameter must be an object");
30if(a.isPlainObject(h)){for(var k in h)c=h[k],a.isPlainObject(c)?f.setItem(k,JSON.stringify(c)):f.setItem(k,c);return h}if(3==e)return"object"==typeof i?f.setItem(h,JSON.stringify(i)):f.setItem(h,i),i;try{d=f.getItem(h),null!=d&&(j=JSON.parse(d))}catch(l){}d=j;for(var k=2;e-2>k;k++)c=g[k],d[c]&&a.isPlainObject(d[c])||(d[c]={}),d=d[c];return d[g[k]]=g[k+1],f.setItem(h,JSON.stringify(j)),j}function d(b){var c,d,e=arguments.length,f=window[b],g=arguments,h=g[1];if(2>e)throw new Error("Minimum 2 arguments must be given");if(a.isArray(h)){for(var i in h)f.removeItem(h[i]);return!0}if(2==e)return f.removeItem(h),!0;try{c=d=JSON.parse(f.getItem(h))}catch(j){throw new ReferenceError(h+" is not defined in this storage")}for(var i=2;e-1>i;i++)if(d=d[g[i]],void 0===d)throw new ReferenceError([].slice.call(g,1,i).join(".")+" is not defined in this storage");if(a.isArray(g[i]))for(var k in g[i])delete d[g[i][k]];else delete d[g[i]];return f.setItem(h,JSON.stringify(c)),!0}function e(b,c){var e=h(b);for(var f in e)d(b,e[f]);if(c)for(var f in a.namespaceStorages)i(f)}function f(c){var d=arguments.length,e=arguments,g=(window[c],e[1]);if(1==d)return 0==h(c).length;if(a.isArray(g)){for(var i=0;i<g.length;i++)if(!f(c,g[i]))return!1;return!0}try{var j=b.apply(this,arguments);a.isArray(e[d-1])||(j={totest:j});for(var i in j)if(!(a.isPlainObject(j[i])&&a.isEmptyObject(j[i])||a.isArray(j[i])&&!j[i].length)&&j[i])return!1;return!0}catch(k){return!0}}function g(c){var d=arguments.length,e=arguments,f=(window[c],e[1]);if(2>d)throw new Error("Minimum 2 arguments must be given");if(a.isArray(f)){for(var h=0;h<f.length;h++)if(!g(c,f[h]))return!1;return!0}try{var i=b.apply(this,arguments);a.isArray(e[d-1])||(i={totest:i});for(var h in i)if(void 0===i[h]||null===i[h])return!1;return!0}catch(j){return!1}}function h(c){var d=arguments.length,e=window[c],f=arguments,g=(f[1],[]),h={};if(h=d>1?b.apply(this,f):e,h&&h._cookie)for(var i in a.cookie())""!=i&&g.push(i.replace(h._prefix,""));else for(var j in h)g.push(j);return g}function i(b){if(!b||"string"!=typeof b)throw new Error("First parameter must be a string");m?(window.localStorage.getItem(b)||window.localStorage.setItem(b,"{}"),window.sessionStorage.getItem(b)||window.sessionStorage.setItem(b,"{}")):(window.localCookieStorage.getItem(b)||window.localCookieStorage.setItem(b,"{}"),window.sessionCookieStorage.getItem(b)||window.sessionCookieStorage.setItem(b,"{}"));var c={localStorage:a.extend({},a.localStorage,{_ns:b}),sessionStorage:a.extend({},a.sessionStorage,{_ns:b})};return a.cookie&&(window.cookieStorage.getItem(b)||window.cookieStorage.setItem(b,"{}"),c.cookieStorage=a.extend({},a.cookieStorage,{_ns:b})),a.namespaceStorages[b]=c,c}function j(a){var b="jsapi";try{return window[a]?(window[a].setItem(b,b),window[a].removeItem(b),!0):!1}catch(c){return!1}}var k="ls_",l="ss_",m=j("localStorage"),n={_type:"",_ns:"",_callMethod:function(a,b){var c=[this._type],b=Array.prototype.slice.call(b),d=b[0];return this._ns&&c.push(this._ns),"string"==typeof d&&-1!==d.indexOf(".")&&(b.shift(),[].unshift.apply(b,d.split("."))),[].push.apply(c,b),a.apply(this,c)},get:function(){return this._callMethod(b,arguments)},set:function(){var b=arguments.length,d=arguments,e=d[0];if(1>b||!a.isPlainObject(e)&&2>b)throw new Error("Minimum 2 arguments must be given or first parameter must be an object");if(a.isPlainObject(e)&&this._ns){for(var f in e)c(this._type,this._ns,f,e[f]);return e}var g=this._callMethod(c,d);return this._ns?g[e.split(".")[0]]:g},remove:function(){if(arguments.length<1)throw new Error("Minimum 1 argument must be given");return this._callMethod(d,arguments)},removeAll:function(a){return this._ns?(c(this._type,this._ns,{}),!0):e(this._type,a)},isEmpty:function(){return this._callMethod(f,arguments)},isSet:function(){if(arguments.length<1)throw new Error("Minimum 1 argument must be given");return this._callMethod(g,arguments)},keys:function(){return this._callMethod(h,arguments)}};if(a.cookie){window.name||(window.name=Math.floor(1e8*Math.random()));var o={_cookie:!0,_prefix:"",_expires:null,_path:null,_domain:null,setItem:function(b,c){a.cookie(this._prefix+b,c,{expires:this._expires,path:this._path,domain:this._domain})},getItem:function(b){return a.cookie(this._prefix+b)},removeItem:function(b){return a.removeCookie(this._prefix+b)},clear:function(){for(var b in a.cookie())""!=b&&(!this._prefix&&-1===b.indexOf(k)&&-1===b.indexOf(l)||this._prefix&&0===b.indexOf(this._prefix))&&a.removeCookie(b)},setExpires:function(a){return this._expires=a,this},setPath:function(a){return this._path=a,this},setDomain:function(a){return this._domain=a,this},setConf:function(a){return a.path&&(this._path=a.path),a.domain&&(this._domain=a.domain),a.expires&&(this._expires=a.expires),this},setDefaultConf:function(){this._path=this._domain=this._expires=null}};m||(window.localCookieStorage=a.extend({},o,{_prefix:k,_expires:3650}
30),window.sessionCookieStorage=a.extend({},o,{_prefix:l+window.name+"_"})),window.cookieStorage=a.extend({},o),a.cookieStorage=a.extend({},n,{_type:"cookieStorage",setExpires:function(a){return window.cookieStorage.setExpires(a),this},setPath:function(a){return window.cookieStorage.setPath(a),this},setDomain:function(a){return window.cookieStorage.setDomain(a),this},setConf:function(a){return window.cookieStorage.setConf(a),this},setDefaultConf:function(){return window.cookieStorage.setDefaultConf(),this}})}a.initNamespaceStorage=function(a){return i(a)},m?(a.localStorage=a.extend({},n,{_type:"localStorage"}),a.sessionStorage=a.extend({},n,{_type:"sessionStorage"})):(a.localStorage=a.extend({},n,{_type:"localCookieStorage"}),a.sessionStorage=a.extend({},n,{_type:"sessionCookieStorage"})),a.namespaceStorages={},a.removeAllStorages=function(b){a.localStorage.removeAll(b),a.sessionStorage.removeAll(b),a.cookieStorage&&a.cookieStorage.removeAll(b),b||(a.namespaceStorages={})}});
31
32
33//
34// jquery.impact-superslides
35//
36
37
38(function(window,$){var Superslides,plugin='superslides';Superslides=function(el,options){this.options=$.extend({play:false,animation_speed:600,animation_easing:'swing',animation:'slide',fast_first_slide:false,transition_bias:2,inherit_width_from:window,inherit_height_from:window,pagination:true,hashchange:false,scrollable:true,proportionalRatio:false,portrait_v_align:'center',landscape_h_align:'center',minimum_height:1,autoPlay_videos:false,v_bleed:0,h_bleed:0,elements:{preserve:'.preserve',nav:'.slides-navigation',container:'.slides-container',pagination:'.slides-pagination'}},options);var that=this,$control=$('<div>',{"class":'slides-control'}),multiplier=1,first_slide=true,isRTL=false;this.$el=$(el);this.$container=this.$el.find(this.options.elements.container);var initialize=function(){multiplier=that._findMultiplier();that.isRTL=document.documentElement.dir=="rtl"?true:false;that.$el.on('click',that.options.elements.nav+" a",function(e){e.preventDefault();that.stop();if($(this).hasClass('next')){that.animate('next',function(){that.start();});}else{that.animate('prev',function(){that.start();});}});$(document).on('keyup',function(e){if(e.keyCode===37){that.animate('prev');}
39if(e.keyCode===39){that.animate('next');}});$(window).on('resize',function(){setTimeout(function(){var $children=that.$container.children();that.width=that._findWidth();that.height=that._findHeight();$children.css({width:that.width,left:that.width});that.css.containers();that.css.images();that.css.videos();that.$el.trigger('resized.slides');},10);});if(that.options.hashchange){$(window).on('hashchange',function(){var hash=that._parseHash(),index;index=that._upcomingSlide(hash);if(index>=0&&index!==that.current){that.animate(index);}});}
40that.pagination._events();that.start();return that;};var css={containers:function(){if(that.init){that.$el.css({height:that.height});that.$control.css({width:that.width*multiplier});if(that.isRTL){that.$control.css('right',-that.width);}else{that.$control.css('left',-that.width);}
41that.$container.css({});}else{$('body').css({margin:0});that.$el.css({position:'relative',overflow:'hidden',width:'100%',height:that.height});that.$control.css({position:'relative',transform:'translate3d(0)',height:'100%',width:that.width*multiplier});if(that.isRTL){that.$control.css('right',-that.width);}else{that.$control.css('left',-that.width);}
42that.$container.css({display:'none',margin:'0',padding:'0',listStyle:'none',position:'relative',height:'100%'});}
43if(that.size()===1){that.$el.find(that.options.elements.nav).hide();}},images:function(){var $images=that.$container.find('img').not(that.options.elements.preserve)
44$images.removeAttr('width').removeAttr('height').css({"-webkit-backface-visibility":'hidden',"-ms-interpolation-mode":'bicubic',"position":'absolute',"left":'0',"top":'0',"z-index":'-1',"max-width":'none'});$images.each(function(){var image_aspect_ratio=that.image._aspectRatio(this),image=this;if(!$.data(this,'processed')){var img=new Image();img.onload=function(){that.image._scale(image,image_aspect_ratio);that.image._center(image,image_aspect_ratio);$.data(image,'processed',true);};img.src=this.src;}else{that.image._scale(image,image_aspect_ratio);that.image._center(image,image_aspect_ratio);}});},videos:function(){var $videos=that.$container.find('video');$videos.each(function(){thisVid=$(this);video=this;if(!thisVid.attr("autoplay")){if(that.options.autoPlay_videos)thisVid.get(0).play();}
45that.image._coverVid(video,thisVid.attr('data-vid-width'),thisVid.attr('data-vid-height'));});},children:function(){var $children=that.$container.children(),i=0;$children.each(function(){var thisChild=$(this);thisChild.attr('data-impact-slide',i+1);i++;});if($children.is('img')){$children.each(function(){if($(this).is('img')){$(this).wrap('<div>');var id=$(this).attr('id');$(this).removeAttr('id');$(this).parent().attr('id',id);}});$children=that.$container.children();}
46if($children.hasClass('impact-video')){$children.find('video').each(function(){var id=$(this).attr('id'),vid=document.getElementById(id);vid.playbackRate=vid.getAttribute('data-rate');vid.setAttribute('data-vid-width',vid.videoWidth);vid.setAttribute('data-vid-height',vid.videoHeight);that.image._coverVid(vid,vid.getAttribute('data-vid-width'),vid.getAttribute('data-vid-height'));vid.addEventListener("loadedmetadata",function(e){this.setAttribute('data-vid-width',this.videoWidth);this.setAttribute('data-vid-height',this.videoHeight);that.image._coverVid(this,this.getAttribute('data-vid-width'),this.getAttribute('data-vid-height'));},false);});}
47if(!that.init){$children.css({display:'none',left:that.width*2});}
48$children.css({position:'absolute',overflow:'hidden',height:'100%',width:that.width,top:0,zIndex:0});}}
49var fx={slide:function(orientation,complete){var transTime,$children=that.$container.children(),$target=$children.eq(orientation.upcoming_slide);$target.css({left:orientation.upcoming_position,display:'block'});if(first_slide){transTime=that.options.fast_first_slide;first_slide=false;}else{transTime=that.options.animation_speed}
50that.$control.animate({left:orientation.offset},transTime,that.options.animation_easing,function(){if(that.size()>1){that.$control.css({left:-that.width});$children.eq(orientation.upcoming_slide).css({left:that.width,zIndex:2});if(orientation.outgoing_slide>=0){$children.eq(orientation.outgoing_slide).css({left:that.width,display:'none',zIndex:0});}}
51complete();});},fade:function(orientation,complete){var that=this,transTime,$children=that.$container.children(),$outgoing=$children.eq(orientation.outgoing_slide),$target=$children.eq(orientation.upcoming_slide);
51if(first_slide){transTime=that.options.fast_first_slide;first_slide=false;}else{transTime=that.options.animation_speed}
52$target.css({left:this.width,opacity:0,display:'block'}).animate({opacity:1},transTime,that.options.animation_easing);if(orientation.outgoing_slide>=0){$outgoing.animate({opacity:0},transTime*that.options.transition_bias,that.options.animation_easing,function(){if(that.size()>1){$children.eq(orientation.upcoming_slide).css({zIndex:2});if(orientation.outgoing_slide>=0){$children.eq(orientation.outgoing_slide).css({opacity:1,display:'none',zIndex:0});}}
53complete();});}else{$target.css({zIndex:2});complete();}}};fx=$.extend(fx,$.fn.superslides.fx);var image={_alignY:function(image,align){var $img=$(image),vertical,vpos={'top':function(){vertical=0;},'center':function(){vertical=(that.height-$img.height())/2;},'bottom':function(){vertical=that.height-$img.height();},'default':function(){vertical=(that.height-$img.height())/2;}};(vpos[align]||vpos['default'])();$img.css({top:vertical});},_alignX:function(image,align){var $img=$(image),horiz,hpos={'left':function(){horiz=0;},'center':function(){horiz=(that.width-$img.width())/2;},'right':function(){horiz=that.width-$img.width();},'default':function(){horiz=(that.width-$img.width())/2;}};(hpos[align]||hpos['default'])();$img.css({left:horiz});},_center:function(image,aspectRatio){var $img=$(image);if(aspectRatio>1){that.image._alignX(image,$img.attr('data-h-align')||that.options.portrait_h_align);that.image._alignY(image,$img.attr('data-v-align')||that.options.portrait_v_align);}else{that.image._alignY(image,$img.attr('data-v-align')||that.options.landscape_v_align);that.image._alignX(image,$img.attr('data-h-align')||that.options.landscape_h_align);}},_aspectRatio:function(image){if(!image.naturalHeight&&!image.naturalWidth){var img=new Image();img.src=image.src;image.naturalHeight=img.height;image.naturalWidth=img.width;}
54return image.naturalHeight/image.naturalWidth;},_coverVid:function(video,natural_width,natural_height){thisVideo=$(video);var scale_h=that.width/natural_width,scale_v=that.height/natural_height,scale=scale_h>scale_v?scale_h:scale_v;if(scale*natural_width<300){scale=300/natural_width;};var scaleWidth=scale*natural_width,scaleHeight=scale*natural_height;var vidLeft=-1*((scaleWidth-that.width)/2),vidTop=-1*((scaleHeight-that.height)/2);thisVideo.css({'width':scaleWidth,'height':scaleHeight,'margin-left':vidLeft,'margin-top':vidTop,});},_scale:function(image,image_aspect_ratio){image_aspect_ratio=image_aspect_ratio||that.image._aspectRatio(image);var container_aspect_ratio=that.height/that.width,$img=$(image);if(container_aspect_ratio>image_aspect_ratio){$img.css({height:Math.round(that.height+that.options.v_bleed),width:that.height/image_aspect_ratio})}else{$img.css({height:Math.round((that.width*image_aspect_ratio)+that.options.v_bleed),width:that.width});that.$el.trigger('initialised.slides');}}};var pagination={_setCurrent:function(i){var $slides=that.$container.children();$slides.removeClass('active-slide');$slides.eq(i).addClass('active-slide');that.$el.trigger('slideChange.slides');if(!that.$pagination){return;}
55var $pagination_children=that.$pagination.children();$pagination_children.removeClass('current');$pagination_children.eq(i).addClass('current');},_addItem:function(i){var slide_number=i+1,href=slide_number,$slide=that.$container.children().eq(i),slide_id=$slide.attr('id');if(slide_id){href=slide_id;}
56var $item=$("<a>",{'href':"#"+href,'text':href});$item.appendTo(that.$pagination);},_setup:function(){if(!that.options.pagination||that.size()===1){return;}
57var $pagination=$("<nav>",{'class':that.options.elements.pagination.replace(/^\./,'')});that.$pagination=$pagination.appendTo(that.$el);for(var i=0;i<that.size();i++){that.pagination._addItem(i);}},_events:function(){that.$el.on('click',that.options.elements.pagination+' a',function(e){e.preventDefault();var hash=that._parseHash(this.hash),index;index=that._upcomingSlide(hash,true);if(index!==that.current){that.animate(index,function(){that.start();});}});}};this.css=css;this.image=image;this.pagination=pagination;this.fx=fx;this.animation=this.fx[this.options.animation];this.$control=this.$container.wrap($control).parent('.slides-control');that._findPositions();that.width=that._findWidth();that.height=that._findHeight();this.css.children();this.css.containers();this.css.images();this.css.videos();this.pagination._setup();return initialize();};Superslides.prototype={_findWidth:function(){return $(this.options.inherit_width_from).width();},_findHeight:function(){var min_height=this.options.minimum_height;if(this.options.proportionalRatio){var calc_height=$(this.options.inherit_width_from).width()*this.options.proportionalRatio,calc_height=calc_height>min_height?calc_height:min_height;}else{calc_height=$(this.options.inherit_height_from).height()>min_height?$(this.options.inherit_height_from).height():min_height;}
58return calc_height;},_findMultiplier:function(){return this.size()===1?1:3;},_upcomingSlide:function(direction,from_hash_change){if(from_hash_change&&!isNaN(direction)){direction=direction-1;}
59if((/next/).test(direction)){return this._nextInDom();}else if((/prev/).test(direction)){return this._prevInDom();}else if((/\d/).test(direction)){return+direction;}else if(direction&&(/\w/).test(direction)){var index=this._findSlideById(direction);if(index>=0){return index;}else{return 0;}}else{return 0;}},_findSlideById:function(id){return this.$container.find('#'+id).index();},_findPositions:function(current,thisRef){thisRef=thisRef||this;if(current===undefined){current=-1;}
60thisRef.current=current;thisRef.next=thisRef._nextInDom();thisRef.prev=thisRef._prevInDom();},_nextInDom:function(){var index=this.current+1;if(index===this.size()){index=0;}
61return index;},_prevInDom:function(){var index=this.current-1;if(index<0){index=this.size()-1;}
62return index;},_parseHash:function(hash){hash=hash||window.location.hash;hash=hash.replace(/^#/,'');if(hash&&!isNaN(+hash)){hash=+hash;}
63return hash;},size:function(){return this.$container.children().length;},destroy:function(){return this.$el.removeData();},update:function(){this.css.children();this.css.containers();this.css.images();this.pagination._addItem(this.size())
64this._findPositions(this.current);this.$el.trigger('updated.slides');},stop:function(){clearInterval(this.play_id);delete this.play_id;this.$el.trigger('stopped.slides');},start:function(){var that=this;if(that.options.hashchange){$(window).trigger('hashchange');}else{this.animate();}
65if(this.options.play){if(this.play_id){this.stop();}
66this.play_id=setInterval(function(){that.animate();},this.options.play);}
67that.$el.trigger('started.slides');},animate:function(direction,userCallback){var that=this,orientation={};if(this.animating){return;}
68this.animating=true;if(direction===undefined){direction='next';}
69orientation.upcoming_slide=this._upcomingSlide(direction);if(orientation.upcoming_slide>=this.size()){return;}
70orientation.outgoing_slide=this.current;orientation.upcoming_position=this.width*2;orientation.offset=-orientation.upcoming_position;if(direction==='prev'||direction<orientation.outgoing_slide){orientation.upcoming_position=0;orientation.offset=0;}
71if(that.size()>1){that.pagination._setCurrent(orientation.upcoming_slide);}
72if(that.options.hashchange){var hash=orientation.upcoming_slide+1,id=that.$container.children(':eq('+orientation.upcoming_slide+')').attr('id');if(id){window.location.hash=id;}else{window.location.hash=hash;}}
73if(that.size()===1){that.stop();that.options.play=0;that.options.animation_speed=0;orientation.upcoming_slide=0;orientation.outgoing_slide=-1;}
74that.$el.trigger('nextslide.slides',[orientation.upcoming_slide+1,orientation.outgoing_slide+1]);that.animation(orientation,function(){that._findPositions(orientation.upcoming_slide,that);if(typeof userCallback==='function'){userCallback();}
75that.animating=false;that.$el.trigger('animated.slides',[orientation.upcoming_slide+1,orientation.outgoing_slide+1]);if(!that.init){that.$el.trigger('init.slides',[-1,-1]);that.init=true;that.$container.fadeIn(that.options.fast_first_slide);}});}};$.fn[plugin]=function(option,args){var result=[];this.each(function(){var $this,data,options;$this=$(this);data=$this.data(plugin);options=typeof option==='object'&&option;if(!data){result=$this.data(plugin,(data=new Superslides(this,options)));}
76if(typeof option==="string"){result=data[option];if(typeof result==='function'){return result=result.call(data,args);}}});return result;};$.fn[plugin].fx={};})(this,jQuery);
77
78
79//
80// jquery.easing
81//
82
83(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing.jswing=$.easing.swing;var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});
84
85
86/*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */
87jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("<input/>",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.no
87deName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window);
88var stacks = {};
89stacks.jQuery = jQuery.noConflict(true);
90stacks.com_joeworkman_stacks_easycms_image = {};
91stacks.com_joeworkman_stacks_easycms_image = (function(stack) {
92var jQuery = stacks.jQuery;var $ = jQuery; $(function(){$('img.auto-lightbox').click(function(e){e.preventDefault();var path=$(this).data('img'),modal=$('#total-image-reveal'),image=$('<img>').attr('src',path);$('img',modal).remove();if(modal.hasClass("reveal")){modal.prepend(image).foundation('open').one("click",function(){modal.foundation('close');});}else{modal.prepend(image).foundation('reveal','open').one("click",function(){modal.foundation('reveal','close');});}});});
93
94return stack;})(stacks.com_joeworkman_stacks_easycms_image);
95stacks.ws_foundation_animate = {};
96stacks.ws_foundation_animate = (function(stack) { var wow=new WOW({boxClass:'animate-on-scroll',animateClass:'animated',offset:0,mobile:true,live:true});wow.init();
97
98return stack;})(stacks.ws_foundation_animate);
99stacks.com_bigwhiteduck_stacks_headerpro = {};
100stacks.com_bigwhiteduck_stacks_headerpro = (function(stack) {
101var jQuery = stacks.jQuery;var $ = jQuery; var elements=document.getElementsByClassName('hp-slice');while(elements.length>0){elements[0].parentNode.removeChild(elements[0]);}
102
103return stack;})(stacks.com_bigwhiteduck_stacks_headerpro);
104stacks.ws_foundation_styles = {};
105stacks.ws_foundation_styles = (function(stack) {
106var jQuery = stacks.jQuery;var $ = jQuery;
107
108return stack;})(stacks.ws_foundation_styles);
109stacks.stacks_in_28465_2 = {};
110stacks.stacks_in_28465_2 = (function(stack) {
111
112return stack;})(stacks.stacks_in_28465_2);
113stacks.stacks_in_28465_5 = {};
114stacks.stacks_in_28465_5 = (function(stack) {
115var jQuery = stacks.jQuery;var $ = jQuery;
116
117return stack;})(stacks.stacks_in_28465_5);
118stacks.stacks_in_28465_7 = {};
119stacks.stacks_in_28465_7 = (function(stack) {
120var jQuery = stacks.jQuery;var $ = jQuery;
121
122return stack;})(stacks.stacks_in_28465_7);
123stacks.stacks_in_32923 = {};
124stacks.stacks_in_32923 = (function(stack) {
125var jQuery = stacks.jQuery;var $ = jQuery;/*!***************************************************
126 * mark.js v8.11.1
127 * https://markjs.io/
128 * Copyright (c) 2014–2018, Julian Kühnel
129 * Released under the MIT license https://git.io/vwTVl
130 *****************************************************/
131! function(e, t) {
132  "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.Mark = t()
133}(this, function() {
134  "use strict";
135  var e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
136      return typeof e
137    } : function(e) {
138      return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
139    },
140    t = function(e, t) {
141      if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
142    },
143    n = function() {
144      function e(e, t) {
145        for (var n = 0; n < t.length; n++) {
146          var r = t[n];
147          r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
148        }
149      }
150      return function(t, n, r) {
151        return n && e(t.prototype, n), r && e(t, r), t
152      }
153    }(),
154    r = Object.assign || function(e) {
155      for (var t = 1; t < arguments.length; t++) {
156        var n = arguments[t];
157        for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r])
158      }
159      return e
160    },
161    i = function() {
162      function e(n) {
163        var r = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
164          i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [],
165          o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 5e3;
166        t(this, e), this.ctx = n, this.iframes = r, this.exclude = i, this.iframesTimeout = o
167      }
168      return n(e, [{
169        key: "getContexts",
170        value: function() {
171          var e = [];
172          return (void 0 !== this.ctx && this.ctx ? NodeList.prototype.isPrototypeOf(this.ctx) ? Array.prototype.slice.call(this.ctx) : Array.isArray(this.ctx) ? this.ctx : "string" == typeof this.ctx ? Array.prototype.slice.call(document.querySelectorAll(this.ctx)) : [this.ctx] : []).forEac
vendor: 18,175 bytes, lines 172-620
172h(function(t) {
173            var n = e.filter(function(e) {
174              return e.contains(t)
175            }).length > 0; - 1 !== e.indexOf(t) || n || e.push(t)
176          }), e
177        }
178      }, {
179        key: "getIframeContents",
180        value: function(e, t) {
181          var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : function() {},
182            r = void 0;
183          try {
184            var i = e.contentWindow;
185            if (r = i.document, !i || !r) throw new Error("iframe inaccessible")
186          } catch (e) {
187            n()
188          }
189          r && t(r)
190        }
191      }, {
192        key: "isIframeBlank",
193        value: function(e) {
194          var t = "about:blank",
195            n = e.getAttribute("src").trim();
196          return e.contentWindow.location.href === t && n !== t && n
197        }
198      }, {
199        key: "observeIframeLoad",
200        value: function(e, t, n) {
201          var r = this,
202            i = !1,
203            o = null,
204            a = function a() {
205              if (!i) {
206                i = !0, clearTimeout(o);
207                try {
208                  r.isIframeBlank(e) || (e.removeEventListener("load", a), r.getIframeContents(e, t, n))
209                } catch (e) {
210                  n()
211                }
212              }
213            };
214          e.addEventListener("load", a), o = setTimeout(a, this.iframesTimeout)
215        }
216      }, {
217        key: "onIframeReady",
218        value: function(e, t, n) {
219          try {
220            "complete" === e.contentWindow.document.readyState ? this.isIframeBlank(e) ? this.observeIframeLoad(e, t, n) : this.getIframeContents(e, t, n) : this.observeIframeLoad(e, t, n)
221          } catch (e) {
222            n()
223          }
224        }
225      }, {
226        key: "waitForIframes",
227        value: function(e, t) {
228          var n = this,
229            r = 0;
230          this.forEachIframe(e, function() {
231            return !0
232          }, function(e) {
233            r++, n.waitForIframes(e.querySelector("html"), function() {
234              --r || t()
235            })
236          }, function(e) {
237            e || t()
238          })
239        }
240      }, {
241        key: "forEachIframe",
242        value: function(t, n, r) {
243          var i = this,
244            o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : function() {},
245            a = t.querySelectorAll("iframe"),
246            s = a.length,
247            c = 0;
248          a = Array.prototype.slice.call(a);
249          var u = function() {
250            --s <= 0 && o(c)
251          };
252          s || u(), a.forEach(function(t) {
253            e.matches(t, i.exclude) ? u() : i.onIframeReady(t, function(e) {
254              n(t) && (c++, r(e)), u()
255            }, u)
256          })
257        }
258      }, {
259        key: "createIterator",
260        value: function(e, t, n) {
261          return document.createNodeIterator(e, t, n, !1)
262        }
263      }, {
264        key: "createInstanceOnIframe",
265        value: function(t) {
266          return new e(t.querySelector("html"), this.iframes)
267        }
268      }, {
269        key: "compareNodeIframe",
270        value: function(e, t, n) {
271          if (e.compareDocumentPosition(n) & Node.DOCUMENT_POSITION_PRECEDING) {
272            if (null === t) return !0;
273            if (t.compareDocumentPosition(n) & Node.DOCUMENT_POSITION_FOLLOWING) return !0
274          }
275          return !1
276        }
277      }, {
278        key: "getIteratorNode",
279        value: function(e) {
280          var t = e.previousNode();
281          return {
282            prevNode: t,
283            node: null === t ? e.nextNode() : e.nextNode() && e.nextNode()
284          }
285        }
286      }, {
287        key: "checkIframeFilter",
288        value: function(e, t, n, r) {
289          var i = !1,
290            o = !1;
291          return r.forEach(function(e, t) {
292            e.val === n && (i = t, o = e.handled)
293          }), this.compareNodeIframe(e, t, n) ? (!1 !== i || o ? !1 === i || o || (r[i].handled = !0) : r.push({
294            val: n,
295            handled: !0
296          }), !0) : (!1 === i && r.push({
297            val: n,
298            handled: !1
299          }), !1)
300        }
301      }, {
302        key: "handleOpenIframes",
303        value: function(e, t, n, r) {
304          var i = this;
305          e.forEach(function(e) {
306            e.handled || i.getIframeContents(e.val, function(e) {
307              i.createInstanceOnIframe(e).forEachNode(t, n, r)
308            })
309          })
310        }
311      }, {
312        key: "iterateThroughNodes",
313        value: function(e, t, n, r, i) {
314          for (var o, a = this, s = this.createIterator(t, e, r), c = [], u = [], l = void 0, h = void 0; void 0, o = a.getIteratorNode(s), h = o.prevNode, l = o.node;) this.iframes && this.forEachIframe(t, function(e) {
315            return a.checkIframeFilter(l, h, e, c)
316          }, function(t) {
317            a.createInstanceOnIframe(t).forEachNode(e, function(e) {
318              return u.push(e)
319            }, r)
320          }), u.push(l);
321          u.forEach(function(e) {
322            n(e)
323          }), this.iframes && this.handleOpenIframes(c, e, n, r), i()
324        }
325      }, {
326        key: "forEachNode",
327        value: function(e, t, n) {
328          var r = this,
329            i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : function() {},
330            o = this.getContexts(),
331            a = o.length;
332          a || i(), o.forEach(function(o) {
333            var s = function() {
334              r.iterateThroughNodes(e, o, t, n, function() {
335                --a <= 0 && i()
336              })
337            };
338            r.iframes ? r.waitForIframes(o, s) : s()
339          })
340        }
341      }], [{
342        key: "matches",
343        value: function(e, t) {
344          var n = "string" == typeof t ? [t] : t,
345            r = e.matches || e.matchesSelector || e.msMatchesSelector || e.mozMatchesSelector || e.oMatchesSelector || e.webkitMatchesSelector;
346          if (r) {
347            var i = !1;
348            return n.every(function(t) {
349              return !r.call(e, t) || (i = !0, !1)
350            }), i
351          }
352          return !1
353        }
354      }]), e
355    }(),
356    o = function() {
357      function e(n) {
358        t(this, e), this.opt = r({}, {
359          diacritics: !0,
360          synonyms: {},
361          accuracy: "partially",
362          caseSensitive: !1,
363          ignoreJoiners: !1,
364          ignorePunctuation: [],
365          wildcards: "disabled"
366        }, n)
367      }
368      return n(e, [{
369        key: "create",
370        value: function(e) {
371          return "disabled" !== this.opt.wildcards && (e = this.setupWildcardsRegExp(e)), e = this.escapeStr(e), Object.keys(this.opt.synonyms).length && (e = this.createSynonymsRegExp(e)), (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) && (e = this.setupIgnoreJoinersRegExp(e)), this.opt.diacritics && (e = this.createDiacriticsRegExp(e)), e = this.createMergedBlanksRegExp(e), (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) && (e = this.createJoinersRegExp(e)), "disabled" !== this.opt.wildcards && (e = this.createWildcardsRegExp(e)), e = this.createAccuracyRegExp(e), new RegExp(e, "gm" + (this.opt.caseSensitive ? "" : "i"))
372        }
373      }, {
374        key: "escapeStr",
375        value: function(e) {
376          return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&")
377        }
378      }, {
379        key: "createSynonymsRegExp",
380        value: function(e) {
381          var t = this.opt.synonyms,
382            n = this.opt.caseSensitive ? "" : "i",
383            r = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? "\0" : "";
384          for (var i in t)
385            if (t.hasOwnProperty(i)) {
386              var o = t[i],
387                a = "disabled" !== this.opt.wildcards ? this.setupWildcardsRegExp(i) : this.escapeStr(i),
388                s = "disabled" !== this.opt.wildcards ? this.setupWildcardsRegExp(o) : this.escapeStr(o);
389              "" !== a && "" !== s && (e = e.replace(new RegExp("(" + this.escapeStr(a) + "|" + this.escapeStr(s) + ")", "gm" + n), r + "(" + this.processSynonyms(a) + "|" + this.processSynonyms(s) + ")" + r))
390            } return e
391        }
392      }, {
393        key: "processSynonyms",
394        value: function(e) {
395          return (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) && (e = this.setupIgnoreJoinersRegExp(e)), e
396        }
397      }, {
398        key: "setupWildcardsRegExp",
399        value: function(e) {
400          return (e = e.replace(/(?:\\)*\?/g, function(e) {
401            return "\\" === e.charAt(0) ? "?" : "�"
402          })).replace(/(?:\\)*\*/g, function(e) {
403            return "\\" === e.charAt(0) ? "*" : "�"
404          })
405        }
406      }, {
407        key: "createWildcardsRegExp",
408        value: function(e) {
409          var t = "withSpaces" === this.opt.wildcards;
410          return e.replace(/\u0001/g, t ? "[\\S\\s]?" : "\\S?").replace(/\u0002/g, t ? "[\\S\\s]*?" : "\\S*")
411        }
412      }, {
413        key: "setupIgnoreJoinersRegExp",
414        value: function(e) {
415          return e.replace(/[^(|)\\]/g, function(e, t, n) {
416            var r = n.charAt(t + 1);
417            return /[(|)\\]/.test(r) || "" === r ? e : e + "\0"
418          })
419        }
420      }, {
421        key: "createJoinersRegExp",
422        value: function(e) {
423          var t = [],
424            n = this.opt.ignorePunctuation;
425          return Array.isArray(n) && n.length && t.push(this.escapeStr(n.join(""))), this.opt.ignoreJoiners && t.push("\\u00ad\\u200b\\u200c\\u200d"), t.length ? e.split(/\u0000+/).join("[" + t.join("") + "]*") : e
426        }
427      }, {
428        key: "createDiacriticsRegExp",
429        value: function(e) {
430          var t = this.opt.caseSensitive ? "" : "i",
431            n = this.opt.caseSensitive ? ["aàáảãạăằắẳẵặâầấẩẫậäåāą", "AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ", "cçćč", "CÇĆČ", "dđď", "DĐĎ", "eèéẻẽẹêềếểễệëěēę", "EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ", "iìíỉĩịîïī", "IÌÍỈĨỊÎÏĪ", "lł", "LŁ", "nñňń", "NÑŇŃ", "oòóỏõọôồốổỗộơởỡớờợöøō", "OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ", "rř", "RŘ", "sšśșş", "SŠŚȘŞ", "tťțţ", "TŤȚŢ", "uùúủũụưừứửữựûüůū", "UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ", "yýỳỷỹỵÿ", "YÝỲỶỸỴŸ", "zžżź", "ZŽŻŹ"] : ["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ", "cçćčCÇĆČ", "dđďDĐĎ", "eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ", "iìíỉĩịîïīIÌÍỈĨỊÎÏĪ", "lłLŁ", "nñňńNÑŇŃ", "oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ", "rřRŘ", "sšśșşSŠŚȘŞ", "tťțţTŤȚŢ", "uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ", "yýỳỷỹỵÿYÝỲỶỸỴŸ", "zžżźZŽŻŹ"],
432            r = [];
433          return e.split("").forEach(function(i) {
434            n.every(function(n) {
435              if (-1 !== n.indexOf(i)) {
436                if (r.indexOf(n) > -1) return !1;
437                e = e.replace(new RegExp("[" + n + "]", "gm" + t), "[" + n + "]"), r.push(n)
438              }
439              return !0
440            })
441          }), e
442        }
443      }, {
444        key: "createMergedBlanksRegExp",
445        value: function(e) {
446          return e.replace(/[\s]+/gim, "[\\s]+")
447        }
448      }, {
449        key: "createAccuracyRegExp",
450        value: function(e) {
451          var t = this,
452            n = this.opt.accuracy,
453            r = "string" == typeof n ? n : n.value,
454            i = "";
455          switch (("string" == typeof n ? [] : n.limiters).forEach(function(e) {
456            i += "|" + t.escapeStr(e)
457          }), r) {
458            case "partially":
459            default:
460              return "()(" + e + ")";
461            case "complementary":
462              return "()([^" + (i = "\\s" + (i || this.escapeStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿"))) + "]*" + e + "[^" + i + "]*)";
463            case "exactly":
464              return "(^|\\s" + i + ")(" + e + ")(?=$|\\s" + i + ")"
465          }
466        }
467      }]), e
468    }(),
469    a = function() {
470      function a(e) {
471        t(this, a), this.ctx = e, this.ie = !1;
472        var n = window.navigator.userAgent;
473        (n.indexOf("MSIE") > -1 || n.indexOf("Trident") > -1) && (this.ie = !0)
474      }
475      return n(a, [{
476        key: "log",
477        value: function(t) {
478          var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "debug",
479            r = this.opt.log;
480          this.opt.debug && "object" === (void 0 === r ? "undefined" : e(r)) && "function" == typeof r[n] && r[n]("mark.js: " + t)
481        }
482      }, {
483        key: "getSeparatedKeywords",
484        value: function(e) {
485          var t = this,
486            n = [];
487          return e.forEach(function(e) {
488            t.opt.separateWordSearch ? e.split(" ").forEach(function(e) {
489              e.trim() && -1 === n.indexOf(e) && n.push(e)
490            }) : e.trim() && -1 === n.indexOf(e) && n.push(e)
491          }), {
492            keywords: n.sort(function(e, t) {
493              return t.length - e.length
494            }),
495            length: n.length
496          }
497        }
498      }, {
499        key: "isNumeric",
500        value: function(e) {
501          return Number(parseFloat(e)) == e
502        }
503      }, {
504        key: "checkRanges",
505        value: function(e) {
506          var t = this;
507          if (!Array.isArray(e) || "[object Object]" !== Object.prototype.toString.call(e[0])) return this.log("markRanges() will only accept an array of objects"), this.opt.noMatch(e), [];
508          var n = [],
509            r = 0;
510          return e.sort(function(e, t) {
511            return e.start - t.start
512          }).forEach(function(e) {
513            var i = t.callNoMatchOnInvalidRanges(e, r),
514              o = i.start,
515              a = i.end;
516            i.valid && (e.start = o, e.length = a - o, n.push(e), r = a)
517          }), n
518        }
519      }, {
520        key: "callNoMatchOnInvalidRanges",
521        value: function(e, t) {
522          var n = void 0,
523            r = void 0,
524            i = !1;
525          return e && void 0 !== e.start ? (r = (n = parseInt(e.start, 10)) + parseInt(e.length, 10), this.isNumeric(e.start) && this.isNumeric(e.length) && r - t > 0 && r - n > 0 ? i = !0 : (this.log("Ignoring invalid or overlapping range: " + JSON.stringify(e)), this.opt.noMatch(e))) : (this.log("Ignoring invalid range: " + JSON.stringify(e)), this.opt.noMatch(e)), {
526            start: n,
527            end: r,
528            valid: i
529          }
530        }
531      }, {
532        key: "checkWhitespaceRanges",
533        value: function(e, t, n) {
534          var r = void 0,
535            i = !0,
536            o = n.length,
537            a = t - o,
538            s = parseInt(e.start, 10) - a;
539          return (r = (s = s > o ? o : s) + parseInt(e.length, 10)) > o && (r = o, this.log("End range automatically set to the max value of " + o)), s < 0 || r - s < 0 || s > o || r > o ? (i = !1, this.log("Invalid range: " + JSON.stringify(e)), this.opt.noMatch(e)) : "" === n.substring(s, r).replace(/\s+/g, "") && (i = !1, this.log("Skipping whitespace only range: " + JSON.stringify(e)), this.opt.noMatch(e)), {
540            start: s,
541            end: r,
542            valid: i
543          }
544        }
545      }, {
546        key: "getTextNodes",
547        value: function(e) {
548          var t = this,
549            n = "",
550            r = [];
551          this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function(e) {
552            r.push({
553              start: n.length,
554              end: (n += e.textContent).length,
555              node: e
556            })
557          }, function(e) {
558            return t.matchesExclude(e.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT
559          }, function() {
560            e({
561              value: n,
562              nodes: r
563            })
564          })
565        }
566      }, {
567        key: "matchesExclude",
568        value: function(e) {
569          return i.matches(e, this.opt.exclude.concat(["script", "style", "title", "head", "html"]))
570        }
571      }, {
572        key: "wrapRangeInTextNode",
573        value: function(e, t, n) {
574          var r = this.opt.element ? this.opt.element : "mark",
575            i = e.splitText(t),
576            o = i.splitText(n - t),
577            a = document.createElement(r);
578            a.setAttribute("tabindex", "0");
579          return a.setAttribute("data-markjs", "true"), this.opt.className && a.setAttribute("class", this.opt.className), a.textContent = i.textContent, i.parentNode.replaceChild(a, i), o
580        }
581      }, {
582        key: "wrapRangeInMappedTextNode",
583        value: function(e, t, n, r, i) {
584          var o = this;
585          e.nodes.every(function(a, s) {
586            var c = e.nodes[s + 1];
587            if (void 0 === c || c.start > t) {
588              if (!r(a.node)) return !1;
589              var u = t - a.start,
590                l = (n > a.end ? a.end : n) - a.start,
591                h = e.value.substr(0, a.start),
592                f = e.value.substr(l + a.start);
593              if (a.node = o.wrapRangeInTextNode(a.node, u, l), e.value = h + f, e.nodes.forEach(function(t, n) {
594                  n >= s && (e.nodes[n].start > 0 && n !== s && (e.nodes[n].start -= l), e.nodes[n].end -= l)
595                }), n -= l, i(a.node.previousSibling, a.start), !(n > a.end)) return !1;
596              t = a.end
597            }
598            return !0
599          })
600        }
601      }, {
602        key: "wrapGroups",
603        value: function(e, t, n, r) {
604          return r((e = this.wrapRangeInTextNode(e, t, t + n)).previousSibling), e
605        }
606      }, {
607        key: "separateGroups",
608        value: function(e, t, n, r, i) {
609          for (var o = t.length, a = 1; a < o; a++) {
610            var s = e.textContent.indexOf(t[a]);
611            t[a] && s > -1 && r(t[a], e) && (e = this.wrapGroups(e, s, t[a].length, i))
612          }
613          return e
614        }
615      }, {
616        key: "wrapMatches",
617        value: function(e, t, n, r, i) {
618          var o = this,
619            a = 0 === t ? 0 : t + 1;
620          this.getTextNodes(function(t) {
vendor: 6,088 bytes, lines 621-794
621            t.nodes.forEach(function(t) {
622              t = t.node;
623              for (var i = void 0; null !== (i = e.exec(t.textContent)) && "" !== i[a];) {
624                if (o.opt.separateGroups) t = o.separateGroups(t, i, a, n, r);
625                else {
626                  if (!n(i[a], t)) continue;
627                  var s = i.index;
628                  if (0 !== a)
629                    for (var c = 1; c < a; c++) s += i[c].length;
630                  t = o.wrapGroups(t, s, i[a].length, r)
631                }
632                e.lastIndex = 0
633              }
634            }), i()
635          })
636        }
637      }, {
638        key: "wrapMatchesAcrossElements",
639        value: function(e, t, n, r, i) {
640          var o = this,
641            a = 0 === t ? 0 : t + 1;
642          this.getTextNodes(function(t) {
643            for (var s = void 0; null !== (s = e.exec(t.value)) && "" !== s[a];) {
644              var c = s.index;
645              if (0 !== a)
646                for (var u = 1; u < a; u++) c += s[u].length;
647              var l = c + s[a].length;
648              o.wrapRangeInMappedTextNode(t, c, l, function(e) {
649                return n(s[a], e)
650              }, function(t, n) {
651                e.lastIndex = n, r(t)
652              })
653            }
654            i()
655          })
656        }
657      }, {
658        key: "wrapRangeFromIndex",
659        value: function(e, t, n, r) {
660          var i = this;
661          this.getTextNodes(function(o) {
662            var a = o.value.length;
663            e.forEach(function(e, r) {
664              var s = i.checkWhitespaceRanges(e, a, o.value),
665                c = s.start,
666                u = s.end;
667              s.valid && i.wrapRangeInMappedTextNode(o, c, u, function(n) {
668                return t(n, e, o.value.substring(c, u), r)
669              }, function(t) {
670                n(t, e)
671              })
672            }), r()
673          })
674        }
675      }, {
676        key: "unwrapMatches",
677        value: function(e) {
678          for (var t = e.parentNode, n = document.createDocumentFragment(); e.firstChild;) n.appendChild(e.removeChild(e.firstChild));
679          t.replaceChild(n, e), this.ie ? this.normalizeTextNode(t) : t.normalize()
680        }
681      }, {
682        key: "normalizeTextNode",
683        value: function(e) {
684          if (e) {
685            if (3 === e.nodeType)
686              for (; e.nextSibling && 3 === e.nextSibling.nodeType;) e.nodeValue += e.nextSibling.nodeValue, e.parentNode.removeChild(e.nextSibling);
687            else this.normalizeTextNode(e.firstChild);
688            this.normalizeTextNode(e.nextSibling)
689          }
690        }
691      }, {
692        key: "markRegExp",
693        value: function(e, t) {
694          var n = this;
695          this.opt = t, this.log('Searching with expression "' + e + '"');
696          var r = 0,
697            i = "wrapMatches";
698          this.opt.acrossElements && (i = "wrapMatchesAcrossElements"), this[i](e, this.opt.ignoreGroups, function(e, t) {
699            return n.opt.filter(t, e, r)
700          }, function(e) {
701            r++, n.opt.each(e)
702          }, function() {
703            0 === r && n.opt.noMatch(e), n.opt.done(r)
704          })
705        }
706      }, {
707        key: "mark",
708        value: function(e, t) {
709          var n = this;
710          this.opt = t;
711          var r = 0,
712            i = "wrapMatches",
713            a = this.getSeparatedKeywords("string" == typeof e ? [e] : e),
714            s = a.keywords,
715            c = a.length;
716          this.opt.acrossElements && (i = "wrapMatchesAcrossElements"), 0 === c ? this.opt.done(r) : function e(t) {
717            var a = new o(n.opt).create(t),
718              u = 0;
719            n.log('Searching with expression "' + a + '"'), n[i](a, 1, function(e, i) {
720              return n.opt.filter(i, t, r, u)
721            }, function(e) {
722              u++, r++, n.opt.each(e)
723            }, function() {
724              0 === u && n.opt.noMatch(t), s[c - 1] === t ? n.opt.done(r) : e(s[s.indexOf(t) + 1])
725            })
726          }(s[0])
727        }
728      }, {
729        key: "markRanges",
730        value: function(e, t) {
731          var n = this;
732          this.opt = t;
733          var r = 0,
734            i = this.checkRanges(e);
735          i && i.length ? (this.log("Starting to mark with the following ranges: " + JSON.stringify(i)), this.wrapRangeFromIndex(i, function(e, t, r, i) {
736            return n.opt.filter(e, t, r, i)
737          }, function(e, t) {
738            r++, n.opt.each(e, t)
739          }, function() {
740            n.opt.done(r)
741          })) : this.opt.done(r)
742        }
743      }, {
744        key: "unmark",
745        value: function(e) {
746          var t = this;
747          this.opt = e;
748          var n = this.opt.element ? this.opt.element : "*";
749          n += "[data-markjs]", this.opt.className && (n += "." + this.opt.className), this.log('Removal selector "' + n + '"'), this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function(e) {
750            t.unwrapMatches(e)
751          }, function(e) {
752            var r = i.matches(e, n),
753              o = t.matchesExclude(e);
754            return !r || o ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT
755          }, this.opt.done)
756        }
757      }, {
758        key: "opt",
759        set: function(e) {
760          this._opt = r({}, {
761            element: "",
762            className: "",
763            exclude: [],
764            iframes: !1,
765            iframesTimeout: 5e3,
766            separateWordSearch: !0,
767            acrossElements: !1,
768            ignoreGroups: 0,
769            each: function() {},
770            noMatch: function() {},
771            filter: function() {
772              return !0
773            },
774            done: function() {},
775            debug: !1,
776            log: window.console
777          }, e)
778        },
779        get: function() {
780          return this._opt
781        }
782      }, {
783        key: "iterator",
784        get: function() {
785          return new i(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout)
786        }
787      }]), a
788    }();
789  return function(e) {
790    var t = this,
791      n = new a(e);
792    return this.mark = function(e, r) {
793      return n.mark(e, r), t
794    }
794, this.markRegExp = function(e, r) {
795      return n.markRegExp(e, r), t
796    }, this.markRanges = function(e, r) {
797      return n.markRanges(e, r), t
798    }, this.unmark = function(e) {
799      return n.unmark(e), t
800    }, this
801  }
802});
803function getURLP(name) {
804  return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [, ""])[1].replace(/\+/g, '%20')) || null;
805}
806function stringIsEmpty(value) {
807  return value ? value.trim().length == 0 : true;
808}
809let $liveSearch2Results,
810    offsetTop = 150,
811    liveSearch2CurrentIndex = 0;
812function liveSearch2JumpTo() {
813  if ($liveSearch2Results.length) {
814    var position,
815      $current = $liveSearch2Results.eq(liveSearch2CurrentIndex);
816    $liveSearch2Results.blur();
817    if ($current.length) {
818      $current.focus();
819      position = $current.offset().top - offsetTop;
820      if(position > $(window).height() + $(window).scrollTop() || position < $(window).scrollTop())window.scrollTo(0, position);
821    }
822    $(".ls2-finder span").text(`${liveSearch2CurrentIndex+1}/${$liveSearch2Results.length}`)
823  }
824}
825function generateConsecutiveCombinations(wordArray) {
826  const resultArray = [];
827  for (let len = 1; len < wordArray.length; len++) {
828    for (let i = 0; i <= wordArray.length - len; i++) {
829      const combinedValue = wordArray.slice(i, i + len).join(' ');
830      resultArray.push(combinedValue);
831    }
832  }
833  return resultArray;
834}
835function liveSearch2Highlight() {
836  var liveSearchTerm = getURLP('h'),//location.search.split('s=')[1];
837      isCase = getURLP('case')?true:false,
838      isExact = getURLP('exact')?true:false;
839  if(!liveSearchTerm)return;
840  if (liveSearchTerm == null) {
841
842  } else if (liveSearchTerm.includes('&')) {
843    liveSearchTerm = liveSearchTerm.substring(0, liveSearchTerm.indexOf('&'));
844  }
845  liveSearchTerm = decodeURIComponent(liveSearchTerm);
846  if (!stringIsEmpty(liveSearchTerm)) {
847    $('body').append(`
848      <div class="ls2-finder">
849        <span></span>
850        <button data-ls2-search="prev"><svg height="18px" viewBox="0 0 24 24" width="18px" fill="currentCOlor"><path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"/></svg></button>
851        <button data-ls2-search="next"><svg height="18px" viewBox="0 0 24 24" width="18px" fill="currentCOlor"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg></button>
852        <button data-ls2-search="clear"><svg height="18px" viewBox="0 0 24 24" width="18px" fill="currentCOlor"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg></button>
853      </div>
854      `);
855  let $liveSearch2ClearBtn = $("button[data-ls2-search='clear']"),
856      $liveSearch2PrevBtn = $("button[data-ls2-search='prev']"),
857      $liveSearch2NextBtn = $("button[data-ls2-search='next']");
858    var markInstance,
859        separateWordSearch = isExact?false:true,
860        accuracy = isExact?"exactly":"partially",
861        caseSensitive = isCase?true:false;
862    if (liveSearchTerm.includes('"')) {
863      liveSearchTerm = liveSearchTerm.replace(/\"/g, "");
864      separateWordSearch = false;
865    }
866    if ($("#container").length > 0) {
867      markInstance = new Mark(document.querySelector("#container"));
868    } else if ($(".stacks_top").length > 0) {
869      markInstance = new Mark(document.querySelector("div.stacks_top"));
870    } else {
871      markInstance = new Mark(document.querySelector("body"));
872    }
873    let liveSearchTerms = liveSearchTerm.split(" ");
874    if(liveSearchTerms.length > 1) {
875      liveSearchTerms = generateConsecutiveCombinations(liveSearchTerms);
876      liveSearchTerms.push(liveSearchTerm);
877      liveSearchTerms = liveSearchTerms.reverse();
878    }
879    let longestMatch = 0;
880    markInstance.mark(liveSearchTerms, {
881      wildcards: "enabled",
882      exclude: ["nav *, input, textarea, datalist *, .ls2-interact *, .live-search-exclude *"],
883      accuracy: accuracy,
884      caseSensitive: caseSensitive,
885      separateWordSearch: false,
886      "filter": function(node, term, totalCounter, counter) {
887        let matchLength = term.split(" ").length;
888        if (term.length < 2 || (node.parentElement && node.parentElement.nodeName == "MARK") || matchLength < longestMatch) {
889          return false;
890        } else {
891          longestMatch = longestMatch<matchLength?matchLength:longestMatch;
892          return true;
893        }
894      },
895      done: function() {
896        $liveSearch2Results = $("mark");
897        if($liveSearch2Results.length) {
898          liveSearch2CurrentIndex = 0;
899          liveSearch2JumpTo();
900        } else {
901          markInstance.unmark();
902          $(".ls2-finder").remove();
903        }
904      }
905    });
906    $liveSearch2ClearBtn.on("click", function() {
907      markInstance.unmark();
908      $(".ls2-finder").remove();
909    });
910    $liveSearch2NextBtn.add($liveSearch2PrevBtn).on("click", function() {
911      if ($liveSearch2Results.length) {
912        liveSearch2CurrentIndex += $(this).is($liveSearch2PrevBtn) ? -1 : 1;
913        if (liveSearch2CurrentIndex < 0) {
914          liveSearch2CurrentIndex = $liveSearch2Results.length - 1;
915        }
916        if (liveSearch2CurrentIndex > $liveSearch2Results.length - 1) {
917          liveSearch2CurrentIndex = 0;
918        }
919        liveSearch2JumpTo();
920      }
921    });
922  }
923}
924jQuery(document).ready(function() {
925  //
926  jQuery('form#stacks_in_32923_live-search').on('submit', function() {
927    var urlVar = "",
928        d = $('#stacks_in_32923_tipue_search_input').val(),
929        randomN = Math.floor(Math.random() * 10001);
930    urlVar += "?q=" + encodeURIComponent(d);
931    if($('#stacks_in_32923_live-search .ls-match-case').hasClass("ls-option-enabled"))urlVar += "&case=1";
932    if($('#stacks_in_32923_live-search .ls-match-exact').hasClass("ls-option-enabled"))urlVar += "&exact=1";
933    urlVar += "&r=" + randomN;
934    window.location = urlVar;
935    return false;
936  });
937  $('#stacks_in_32923_live-search .ls-match-case').on("click", function(event) {
938    $(this).toggleClass("ls-option-enabled");
939  });
940  $('#stacks_in_32923_live-search .ls-match-exact').on("click", function(event) {
941    $(this).toggleClass("ls-option-enabled");
942  });
943});
944jQuery(window).on("load",function() {
945  liveSearch2Highlight();
946});
947
948return stack;})(stacks.stacks_in_32923);
949stacks.stacks_in_32941_440 = {};
950stacks.stacks_in_32941_440 = (function(stack) {
951var jQuery = stacks.jQuery;var $ = jQuery;
952
953
954return stack;})(stacks.stacks_in_32941_440);
955stacks.stacks_in_32941_519 = {};
956stacks.stacks_in_32941_519 = (function(stack) {
957var jQuery = stacks.jQuery;var $ = jQuery;
958
959return stack;})(stacks.stacks_in_32941_519);
960stacks.stacks_in_32941_588 = {};
961stacks.stacks_in_32941_588 = (function(stack) {
962var jQuery = stacks.jQuery;var $ = jQuery;
963
964return stack;})(stacks.stacks_in_32941_588);
965stacks.stacks_in_32941_592 = {};
966stacks.stacks_in_32941_592 = (function(stack) {
967var jQuery = stacks.jQuery;var $ = jQuery;
968
969return stack;})(stacks.stacks_in_32941_592);
970stacks.stacks_in_32947 = {};
971stacks.stacks_in_32947 = (function(stack) {
972var jQuery = stacks.jQuery;var $ = jQuery;
973vein.inject('#stacks_in_32947 .slides-container',{'list-style-type':'none'});$(function(){var stack=$('#stacks_in_32947');if(stack.length==0)return;var preLoader=$('.pre-loader',stack),slide=$('.impact-slide',stack),slidesContainer=$('.slides-container',stack),scrollButton=$('#stacks_in_32947 .impact-arrow-wrap'),container=$('.impact-container',stack),wrapper=$('.impact-wrapper',stack),fgContent=$('.fg-per-show',stack),slideContent=$('.slide-content',stack),propHeight='flexible-height',coverTouch=''=='cover-touch'?true:false,useMobCover=(coverTouch&&$.isMobile())?true:false,noScrollBack=false,isRemoved=false,didScroll=false,position,timerSuspended=false,suspendedOnLast=false,autoPlaySlides='True'=='True'?true:false,playOnceOnly='True'=='True'?true:false,isPlaying=false,playWhenLeave=false,aniType='slide',slideDuration=5000,animationSpeed=1000,transtionBias=3,scrollStop=false,numSlides=countSlides(),fadeIn=300,firstSlideSpeed=numSlides>1?fadeIn:0,slideTime=numSlides>1?slideDuration:false,aspectRatio=false,screensChild=false,minHeight=0,autoPlay_videos='auto'==='auto'?true:false,autoScrollDelay=22.00*1000,portraitVAlign='center',portraitHAlign='center',landscapeVAlign='center',landscapeHAlign='center';$('.stacks_in.com_joeworkman_stacks_impact_animation_stack',stack).parent().css('overflow','visible');$('li.impact-slide:first',slidesContainer).addClass('active-slide');var kbPresent=stack.find('.impact-slide.kb-anim').length>1;
973var initSlides=function(){$('.slides',stack).superslides({animation:aniType,play:false,animation_speed:animationSpeed,fast_first_slide:firstSlideSpeed,transition_bias:transtionBias,inherit_width_from:target,inherit_height_from:target,proportionalRatio:aspectRatio,v_bleed:3,minimum_height:minHeight,pagination:true,autoPlay_videos:autoPlay_videos,portrait_v_align:portraitVAlign,portrait_h_align:portraitHAlign,landscape_v_align:landscapeVAlign,landscape_h_align:landscapeHAlign,elements:{preserve:'.impact-fg-img',nav:'.slides-navigation',container:'.slides-container',pagination:'.slides-pagination'}});preLoader.addClass('hidden');wrapper.removeClass('impact-preload');$(window).trigger('resize');}
974var process_topbar=function(){if($('.top-bar-wrapper')&&$('body').hasClass('f-topbar-fixed')){if($('#stacks_in_32947').offset().top==$('.top-bar-wrapper').outerHeight()){$('body').removeClass('f-topbar-fixed');vein.inject('body.f-topbar-fixed',{'padding-top':'0'});}}}
975function countSlides(){var numSlides=0;slide.each(function(){numSlides++;});return numSlides;}
976var exclude_fg_images=function(container){container.each(function(){$(this).find('img').addClass('impact-fg-img');});}
977var findTarget=function(){if(propHeight==='fixed-height'||propHeight==='flexible-height'){stack.closest('.stacks_out').css('min-height',300+'px');if(propHeight==='flexible-height'){stack.css('height','100%');stack.closest('.stacks_out').css('height',60+'vh');target=stack;}
978else{target=$('#stacks_in_32947>.impact-wrapper');aspectRatio=false;}}
979else{target=stack.parent().parent().parent().attr('class')==='stacks_top'?window:stack.parent().parent();if(propHeight==='proportional-height'){minHeight=300;if('0.7500'==='custom'){aspectRatio=parseFloat('800'/'1200');}
980else{aspectRatio=parseFloat('0.7500');}}}}
981var scrollEffects=function(){position=1-($(window).scrollTop()*1.5/$(window).height()),scrollButton.css('opacity',position);}
982var checkScrollBack=function(){if(stack.offset().top+stack.outerHeight()<=$(window).scrollTop()){fgContent.hide();stack.closest('.stacks_out').removeAttr('style');stack.remove();window.scrollTo(0,0);isRemoved=true;if('undefined'!=typeof foundation&&foundation.jQuery){foundation.jQuery(document).foundation('reflow');}}}
983function slideTimer(action,delayTime){if(numSlides<2){return false;}
984var thisSlideDelay;window.isActive=true;$(window).focus(function(){this.isActive=true;});$(window).blur(function(){this.isActive=false;});$('.slides-navigation a,.slides-pagination a',stack).click(function(){timerSuspended=true;setTimeout(function(){timerSuspended=false;},delayTime);});if(action=='pause'){isPlaying=false;timerSuspended=true;}
985if(action=='start'){isPlaying=true;timerSuspended=false;var timer=setInterval(function(){if(!this.isActive||timerSuspended)return;var thisSlide=stack.find('.active-slide'),thisSlideNumber=thisSlide.attr('data-impact-slide'),thisSlideDelay=thisSlide.attr('data-slide-time')||0;if(!suspendedOnLast&&playOnceOnly&&thisSlideNumber==numSlides){timerSuspended=true;suspendedOnLast=true;return;}
986suspendedOnLast=false;if(thisSlideDelay>0){timerSuspended=true;setTimeout(function(){timerSuspended=false;$('.slides',stack).superslides('animate','next');},parseInt(thisSlideDelay));}
987else
988{$('.slides',stack).superslides('animate','next');}},delayTime);}}
989var updateAnimationClasses=function(slide){stack.find('.impact-animate.animate-always.animated').each(function(){var clone=$(this).removeClass('animated').addClass('pre-anim').clone();$(this).replaceWith(clone);});var animate=$('.impact-animate.pre-anim',slide);animate.removeClass('pre-anim').addClass('animated');}
990var updateKenBurns=function(nextslide,currentslide){stack.find('.impact-slide.kb-anim').each(function(){var thisSlide=$(this);if((thisSlide=nextslide)||(thisSlide=currentslide))return true;var clone=thisSlide.removeClass('animated').addClass('pre-anim').clone();thisSlide.replaceWith(clone);});nextslide.removeClass('pre-anim').addClass('animated');}
991var setup_EventListeners=function(){$(this).on('initialised.slides',function(){wrapper.css('height','');});$(this).on('nextslide.slides',function(event,nextSlide,lastSlide){var
992upcomingVid,upcomingImage,upComingSlide=stack.find("[data-impact-slide='"+nextSlide+"']"),previousSlide=stack.find("[data-impact-slide='"+lastSlide+"']");upcomingImage=upComingSlide.find('img');if(numSlides>1&&kbPresent)updateKenBurns(upComingSlide,previousSlide);
992if(!autoPlay_videos){upcomingVid=upComingSlide.find("video")[0];if($(upcomingVid).length){$(upcomingVid)[0].oncanplaythrough=$(upcomingVid)[0].play()}}});$(this).on('animated.slides',function(event,currentSlide,lastSlide){var
993outgoingVid,thisSlide=stack.find("[data-impact-slide='"+currentSlide+"']"),prevSlide=stack.find("[data-impact-slide='"+lastSlide+"']");updateAnimationClasses(thisSlide);if(!autoPlay_videos){}});}
994var initSlideShow=function(autoPlayShow,autoPlay_videos){setup_EventListeners();initSlides();if(autoPlaySlides){slideTimer('start',slideTime);}}
995$(function(){process_topbar();fgContent.hide();scrollButton.hide();exclude_fg_images(container);findTarget();jQuery.easing.def="easeInOutQuad";fgContent.fadeIn(fadeIn);scrollButton.fadeIn(fadeIn);initSlideShow(autoPlaySlides,autoPlay_videos);function scrollAway(){var toScroll=stack.offset().top+stack.outerHeight();$('html,body').animate({scrollTop:toScroll},parseInt(1200),"easeInOutQuad",function(){if(noScrollBack&&propHeight=='fill-container hero-header')checkScrollBack();});}
996$('#stacks_in_32947 .scrollDown, .impact-scroll').click(function(){scrollAway();});$(window).scroll(function(){didScroll=true;});setInterval(function(){if(didScroll){didScroll=false;scrollEffects();}},100);$('.impact-next').click(function(){$('.slides',stack).superslides('animate','next');});$('.impact-prev').click(function(){$('.slides',stack).superslides('animate','prev');});$('.impact-play').click(function(){slideTimer('start',slideTime);});$('.impact-pause').click(function(){slideTimer('pause',null);});$('.impact-mute').click(function(){$("video",slidesContainer).prop('muted',true);});$('.impact-unmute').click(function(){$("video",slidesContainer).prop('muted',false);});$('.impact-toggle-mute').click(function(){$("video",slidesContainer).prop('muted',!$("video",slidesContainer).prop('muted'));});});});
997
998return stack;})(stacks.stacks_in_32947);
999stacks.stacks_in_32943 = {};
1000stacks.stacks_in_32943 = (function(stack) {
1001var jQuery = stacks.jQuery;var $ = jQuery;
1002vein.inject('#stacks_in_32943 .slides-container',{'list-style-type':'none'});$(function(){var stack=$('#stacks_in_32943');if(stack.length==0)return;var preLoader=$('.pre-loader',stack),slide=$('.impact-slide',stack),slidesContainer=$('.slides-container',stack),scrollButton=$('#stacks_in_32943 .impact-arrow-wrap'),container=$('.impact-container',stack),wrapper=$('.impact-wrapper',stack),fgContent=$('.fg-per-show',stack),slideContent=$('.slide-content',stack),propHeight='flexible-height',coverTouch=''=='cover-touch'?true:false,useMobCover=(coverTouch&&$.isMobile())?true:false,noScrollBack=false,isRemoved=false,didScroll=false,position,timerSuspended=false,suspendedOnLast=false,autoPlaySlides='True'=='True'?true:false,playOnceOnly='False'=='True'?true:false,isPlaying=false,playWhenLeave=false,aniType='fade',slideDuration=3000,animationSpeed=2000,transtionBias=3,scrollStop=false,numSlides=countSlides(),fadeIn=80,firstSlideSpeed=numSlides>1?fadeIn:0,slideTime=numSlides>1?slideDuration:false,aspectRatio=false,screensChild=false,minHeight=0,autoPlay_videos='auto'==='auto'?true:false,autoScrollDelay=5.00*1000,portraitVAlign='center',portraitHAlign='center',landscapeVAlign='center',landscapeHAlign='center';$('.stacks_in.com_joeworkman_stacks_impact_animation_stack',stack).parent().css('overflow','visible');$('li.impact-slide:first',slidesContainer).addClass('active-slide');if($.isMobile()){$(".impact-video",slidesContainer).each(function(){var
1003thisSlide=$(this),poster=thisSlide.find('img.impact-image'),videoContainer=thisSlide.find('video').parent();thisSlide.prepend(poster).removeClass('impact-video');videoContainer.remove();});}var kbPresent=stack.find('.impact-slide.kb-anim').length>1;var initSlides=function(){$('.slides',stack).superslides({animation:aniType,play:false,animation_speed:animationSpeed,fast_first_slide:firstSlideSpeed,transition_bias:transtionBias,inherit_width_from:target,inherit_height_from:target,proportionalRatio:aspectRatio,v_bleed:3,minimum_height:minHeight,pagination:true,autoPlay_videos:autoPlay_videos,portrait_v_align:portraitVAlign,portrait_h_align:portraitHAlign,landscape_v_align:landscapeVAlign,landscape_h_align:landscapeHAlign,elements:{preserve:'.impact-fg-img',nav:'.slides-navigation',container:'.slides-container',pagination:'.slides-pagination'}});preLoader.addClass('hidden');wrapper.removeClass('impact-preload');$(window).trigger('resize');}
1004var process_topbar=function(){if($('.top-bar-wrapper')&&$('body').hasClass('f-topbar-fixed')){if($('#stacks_in_32943').offset().top==$('.top-bar-wrapper').outerHeight()){$('body').removeClass('f-topbar-fixed');vein.inject('body.f-topbar-fixed',{'padding-top':'0'});}}}
1005function countSlides(){var numSlides=0;slide.each(function(){numSlides++;});return numSlides;}
1006var exclude_fg_images=function(container){container.each(function(){$(this).find('img').addClass('impact-fg-img');});}
1007var findTarget=function(){if(propHeight==='fixed-height'||propHeight==='flexible-height'){stack.closest('.stacks_out').css('min-height',300+'px');if(propHeight==='flexible-height'){stack.css('height','100%');stack.closest('.stacks_out').css('height',60+'vh');target=stack;}
1008else{target=$('#stacks_in_32943>.impact-wrapper');aspectRatio=false;}}
1009else{target=stack.parent().parent().parent().attr('class')==='stacks_top'?window:stack.parent().parent();if(propHeight==='proportional-height'){minHeight=300;if('0.7500'==='custom'){aspectRatio=parseFloat('800'/'1200');}
1010else{aspectRatio=parseFloat('0.7500');}}}}
1011var scrollEffects=function(){position=1-($(window).scrollTop()*1.5/$(window).height()),scrollButton.css('opacity',position);}
1012var checkScrollBack=function(){if(stack.offset().top+stack.outerHeight()<=$(window).scrollTop()){fgContent.hide();stack.closest('.stacks_out').removeAttr('style');stack.remove();window.scrollTo(0,0);isRemoved=true;if('undefined'!=typeof foundation&&foundation.jQuery){foundation.jQuery(document).foundation('reflow');}}}
1013function slideTimer(action,delayTime){if(numSlides<2){return false;}
1014var thisSlideDelay;window.isActive=true;$(window).focus(function(){this.isActive=true;});$(window).blur(function(){this.isActive=false;});$('.slides-navigation a,.slides-pagination a',stack).click(function(){timerSuspended=true;setTimeout(function(){timerSuspended=false;},delayTime);});if(action=='pause'){isPlaying=false;timerSuspended=true;}
1015if(action=='start'){isPlaying=true;timerSuspended=false;var timer=setInterval(function(){if(!this.isActive||timerSuspended)return;var thisSlide=stack.find('.active-slide'),thisSlideNumber=thisSlide.attr('data-impact-slide'),thisSlideDelay=thisSlide.attr('data-sli
1015de-time')||0;if(!suspendedOnLast&&playOnceOnly&&thisSlideNumber==numSlides){timerSuspended=true;suspendedOnLast=true;return;}
1016suspendedOnLast=false;if(thisSlideDelay>0){timerSuspended=true;setTimeout(function(){timerSuspended=false;$('.slides',stack).superslides('animate','next');},parseInt(thisSlideDelay));}
1017else
1018{$('.slides',stack).superslides('animate','next');}},delayTime);}}
1019var updateAnimationClasses=function(slide){stack.find('.impact-animate.animate-always.animated').each(function(){var clone=$(this).removeClass('animated').addClass('pre-anim').clone();$(this).replaceWith(clone);});var animate=$('.impact-animate.pre-anim',slide);animate.removeClass('pre-anim').addClass('animated');}
1020var updateKenBurns=function(nextslide,currentslide){stack.find('.impact-slide.kb-anim').each(function(){var thisSlide=$(this);if((thisSlide=nextslide)||(thisSlide=currentslide))return true;var clone=thisSlide.removeClass('animated').addClass('pre-anim').clone();thisSlide.replaceWith(clone);});nextslide.removeClass('pre-anim').addClass('animated');}
1021var setup_EventListeners=function(){$(this).on('initialised.slides',function(){wrapper.css('height','');});$(this).on('nextslide.slides',function(event,nextSlide,lastSlide){var
1022upcomingVid,upcomingImage,upComingSlide=stack.find("[data-impact-slide='"+nextSlide+"']"),previousSlide=stack.find("[data-impact-slide='"+lastSlide+"']");upcomingImage=upComingSlide.find('img');if(numSlides>1&&kbPresent)updateKenBurns(upComingSlide,previousSlide);if(!autoPlay_videos){upcomingVid=upComingSlide.find("video")[0];if($(upcomingVid).length){$(upcomingVid)[0].oncanplaythrough=$(upcomingVid)[0].play()}}});$(this).on('animated.slides',function(event,currentSlide,lastSlide){var
1023outgoingVid,thisSlide=stack.find("[data-impact-slide='"+currentSlide+"']"),prevSlide=stack.find("[data-impact-slide='"+lastSlide+"']");updateAnimationClasses(thisSlide);if(!autoPlay_videos){}});}
1024var initSlideShow=function(autoPlayShow,autoPlay_videos){setup_EventListeners();initSlides();if(autoPlaySlides){slideTimer('start',slideTime);}}
1025$(function(){process_topbar();fgContent.hide();scrollButton.hide();exclude_fg_images(container);findTarget();jQuery.easing.def="easeInOutQuad";fgContent.fadeIn(fadeIn);scrollButton.fadeIn(fadeIn);initSlideShow(autoPlaySlides,autoPlay_videos);function scrollAway(){var toScroll=stack.offset().top+stack.outerHeight();$('html,body').animate({scrollTop:toScroll},parseInt(1200),"easeInOutQuad",function(){if(noScrollBack&&propHeight=='fill-container hero-header')checkScrollBack();});}
1026$('#stacks_in_32943 .scrollDown, .impact-scroll').click(function(){scrollAway();});$(window).scroll(function(){didScroll=true;});setInterval(function(){if(didScroll){didScroll=false;scrollEffects();}},100);$('.impact-next').click(function(){$('.slides',stack).superslides('animate','next');});$('.impact-prev').click(function(){$('.slides',stack).superslides('animate','prev');});$('.impact-play').click(function(){slideTimer('start',slideTime);});$('.impact-pause').click(function(){slideTimer('pause',null);});$('.impact-mute').click(function(){$("video",slidesContainer).prop('muted',true);});$('.impact-unmute').click(function(){$("video",slidesContainer).prop('muted',false);});$('.impact-toggle-mute').click(function(){$("video",slidesContainer).prop('muted',!$("video",slidesContainer).prop('muted'));});});});
1027
1028return stack;})(stacks.stacks_in_32943);
1029stacks.stacks_in_32944 = {};
1030stacks.stacks_in_32944 = (function(stack) {
1031var jQuery = stacks.jQuery;var $ = jQuery;(function($){
1032	$(document).ready(function(){
1033	
1034
1035
1036// ACTIVATE COOKIES
1037
1038
1039
1040// APPEND MAIN STACK TO BODY IF PARENT ISN'T TOAST WRAPPER
1041
1042$('#notice_stacks_in_32944').prependTo(document.body);
1043
1044/*  */
1045$('#notice_stacks_in_32944').removeClass('animated').hide();
1046/*  */
1047
1048
1049// SHOW ON START
1050	
1051
1052// SHOW ON TIMER
1053	
1054
1055// SHOW ON SCROLL TO
1056	
1057
1058// SHOW WITH TRIGGER
1059	$('[data-trigger-id="my_notice_id"]').click(function(e){
1060		e.preventDefault();
1061		if($('#notice_stacks_in_32944').hasClass('bounceOutUp')){
1062			$('#notice_stacks_in_32944')
1063			.removeClass('bounceOutUp')
1064			.addClass('bounceInDown show is-active')
1065			/*  */
1066			.fadeIn()
1067			/*  */
1068			// HIDE ON TIMER
1069			
1070
1071		}else{
1072
1073			$('#notice_stacks_in_32944')
1074			.addClass('bounceInDown show')
1075			/*  */
1076			.fadeIn()
1077			/*  */
1078			// HIDE ON TIMER
1079			
1080		}
1081	});
1082
1083
1084// CLOSE BTN
1085		$('#notice_stacks_in_32944 .notice-close-btn').find('.notice-close-btn-icon').click(function(){
1086			$('#notice_stacks_in_32944')
1087			.removeClass('bounceInDown is-active')
1088			/*  */
1089			.addClass('animated fadeOut closed')
1090			/*  */
1091			setTimeout(function(){
1092				if(!$('#notice_stacks_in_32944').hasClass('is-active')){
1093					$('#notice_stacks_in_32944').removeClass('show');
1094				}
1095			}, 2000)
1096		});
1097
1098// CLOSE ACTION
1099		$('#notice_stacks_in_32944 .notice-action').find('.notice-action-close').click(function(){
1100			$('#notice_stacks_in_32944')
1101			.removeClass('bounceInDown is-active')
1102			/*  */
1103			.addClass('animated fadeOut closed')
1104			/*  */
1105			setTimeout(function(){
1106				if(!$('#notice_stacks_in_32944').hasClass('is-active')){
1107					$('#notice_stacks_in_32944').removeClass('show');
1108				}
1109			}, 2000)
1110		});
1111
1112// FONTS
1113		
1114		if ( !$( "link[href*='Nunito']" ).length ) {
1115			$(document).find("head").append('<link href="https://fonts.googleapis.com/css?family=Nunito:300,400,600,700" rel="stylesheet">');
1116		}
1117		
1118		
1119		
1120		
1121		
1122		
1123		
1124		
1125		
1126		
1127		
1128		
1129		
1130		
1131
1132	// END DOCUMENT READY
1133	});
1134})(jQuery);
1135
1136return stack;})(stacks.stacks_in_32944);
1137stacks.stacks_in_32945 = {};
1138stacks.stacks_in_32945 = (function(stack) {
1139var jQuery = stacks.jQuery;var $ = jQuery;
1140
1141
1142return stack;})(stacks.stacks_in_32945);
1143stacks.stacks_in_33044 = {};
1144stacks.stacks_in_33044 = (function(stack) {
1145
1146return stack;})(stacks.stacks_in_33044);
1147stacks.stacks_in_33066 = {};
1148stacks.stacks_in_33066 = (function(stack) {
1149
1150return stack;})(stacks.stacks_in_33066);
1151stacks.stacks_in_33083 = {};
1152stacks.stacks_in_33083 = (function(stack) {
1153
1154return stack;})(stacks.stacks_in_33083);
1155stacks.stacks_in_33100 = {};
1156stacks.stacks_in_33100 = (function(stack) {
1157
1158return stack;})(stacks.stacks_in_33100);
1159stacks.stacks_in_33129 = {};
1160stacks.stacks_in_33129 = (function(stack) {
1161
1162return stack;})(stacks.stacks_in_33129);
1163stacks.stacks_in_33146 = {};
1164stacks.stacks_in_33146 = (function(stack) {
1165
1166return stack;})(stacks.stacks_in_33146);
1167stacks.stacks_in_33163 = {};
1168stacks.stacks_in_33163 = (function(stack) {
1169
1170return stack;})(stacks.stacks_in_33163);
1171stacks.stacks_in_33180 = {};
1172stacks.stacks_in_33180 = (function(stack) {
1173
1174return stack;})(stacks.stacks_in_33180);
1175stacks.stacks_in_33199 = {};
1176stacks.stacks_in_33199 = (function(stack) {
1177
1178return stack;})(stacks.stacks_in_33199);
1179stacks.stacks_in_33218 = {};
1180stacks.stacks_in_33218 = (function(stack) {
1181
1182return stack;})(stacks.stacks_in_33218);
1183stacks.stacks_in_33238 = {};
1184stacks.stacks_in_33238 = (function(stack) {
1185
1186return stack;})(stacks.stacks_in_33238);
1187stacks.stacks_in_33273 = {};
1188stacks.stacks_in_33273 = (function(stack) {
1189var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
1190/*
1191jquery-plugin-circliful
1192+The MIT License (MIT)
1193+
1194+Copyright (c) 2014 Patric Gutersohn
1195+
1196+Permission is hereby granted, free of charge, to any person obtaining a copy of
1197+this software and associated documentation files (the "Software"), to deal in
1198+the Software without restriction, including without limitation the rights to
1199+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
1200+the Software, and to permit persons to whom the Software is furnished to do so,
1201+subject to the following conditions:
1202+
1203+The above copyright notice and this permission notice shall be included in all
1204+copies or substantial portions of the Software.
1205+
1206+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1207+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
1208+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
1209+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
1210+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
1211+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1212*/
1213"use strict";
1214
1215(function (opticStats) {
1216
1217  opticStats.fn.circliful = function (options, callback) {
1218
1219    var settings = opticStats.extend({
1220      // These are the defaults.
1221      startdegree: 0,
1222      fgcolor: "#556b2f",
1223      bgcolor: "#eee",
1224      fill: false,
1225      width: 15,
1226      dimension: 200,
1227      fontsize: 15,
1228      percent: 50,
1229      animationstep: 1.0,
1230      iconsize: '20px',
1231      iconcolor: '#999',
1232      border: 'default',
1233      complete: null,
1234      bordersize: 10
1235    }, options);
1236
1237    return this.each(function () {
1238
1239      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
1240
1241      var customSettingsObj = {};
1242      var icon = '';
1243      var percent;
1244      var endPercent = 0;
1245      var obj = opticStats(this);
1246      var fill = false;
1247      var text, info;
1248
1249      obj.addClass('circliful');
1250
1251      checkDataAttributes(obj);
1252
1253      if (obj.data('text') != undefined) {
1254
1255        //remove non number characters
1256
1257        text = obj.data('text');
1258        text = text.toString();
1259        text = text.replace(/[^0-9.,]/g, '');
1260        text = "<span class='counter'>" + text + "</span>";
1261
1262        if (obj.data('icon') != undefined) {
1263          icon = opticStats('<i></i>')
1264            .addClass('osIcon fa ' + opticStats(this).data('icon'))
1265            .css({
1266            'color': customSettingsObj.iconcolor,
1267            'font-size': customSettingsObj.iconsize,
1268            'line-height': customSettingsObj.iconsize + "px"
1269          });
1270        }
1271        if (obj.data('icon-custom') != undefined) {
1272          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
1273            .addClass('osIcon ')
1274            .css({
1275            'width': customSettingsObj.iconsize,
1276            'height': customSettingsObj.iconsize
1277          });
1278        }
1279
1280        if (obj.data('type') != undefined) {
1281          type = opticStats(this).data('type');
1282
1283          if (type == 'half') {
1284            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
1285          } else {
1286            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
1287          }
1288        } else {
1289          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
1290        }
1291      }
1292
1293      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
1294        var total = opticStats(this).data("total") / 100;
1295
1296        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
1297        endPercent = (opticStats(this).data("part") / total).toFixed(3);
1298      } else {
1299        if (opticStats(this).data("percent") != undefined) {
1300          percent = opticStats(this).data("percent") / 100;
1301          endPercent = opticStats(this).data("percent");
1302        } else {
1303          percent = settings.percent / 100;
1304        }
1305      }
1306
1307      if (opticStats(this).data('info') != undefined) {
1308        info = opticStats(this).data('info');
1309
1310        if (opticStats(this).data('type') != undefined) {
1311          type = opticStats(this).data('type');
1312
1313          if (type == 'half') {
1314            addInfoText(obj, 0.9);
1315          } else {
1316            addInfoText(obj, 1.25);
1317          }
1318        } else {
1319          addInfoText(obj, 1.25);
1320        }
1321      }
1322
1323      opticStats(this).width(customSettingsObj.dimension + 'px');
1324      if (type == 'line' || type == 'vert-line') {
1325        opticStats(this).height(opticStats(this).data('height') + 'px');
1326      } else {
1327        opticStats(this).height(customSettingsObj.dimension + 'px');
1328      }
1329
1330
1331      var sizeX = customSettingsObj.dimension,
1332          sizeY = customSettingsObj.dimension;
1333      if (type == 'line' || type == 'vert-line') {
1334        sizeY = opticStats(this).data('height');
1335      }
1336      var canvas = opticStats('<canvas></canvas>').attr({
1337        width: sizeX,
1338        height: sizeY
1339      }).appendTo(opticStats(this)).get(0);
1340      var context = canvas.getContext('2d');
1341
1342      var dpr = window.devicePixelRatio;
1343      if ( dpr ) {
1344        var opticStatscanvas = opticStats(canvas);
1345        opticStatscanvas.css('width', sizeX);
1346        opticStatscanvas.css('height', sizeY);
1347        opticStatscanvas.attr('width', sizeX * dpr);
1348        opticStatscanvas.attr('height', sizeY * dpr);
1349
1350        context.scale(dpr, dpr);
1351      }
1352
1353      var container = opticStats(canvas).parent();
1354      var x = sizeX / 2;
1355      var y = sizeY / 2;
1356      var degrees = customSettingsObj.percent * 360.0;
1357      var radians = degrees * (Math.PI / 180);
1358      var radius = sizeX / 2.5;
1359      var startAngle = 2.3 * Math.PI;
1360      var endAngle = 0;
1361      var counterClockwise = false;
1362      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
1363      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
1364      var circ = Math.PI * 2;
1365      var quart = Math.PI / 2;
1366      var type = '';
1367      var fireCallback = true;
1368      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
1369
1370      if (opticStats(this).data('type') != undefined) {
1371        type = opticStats(this).data('type');
1372        if (type == 'half') {
1373          startAngle = 2.0 * Math.PI;
1374          endAngle = 3.14;
1375          circ = Math.PI;
1376          quart = Math.PI / 0.996;
1377        } else if (type == 'angle') {
1378          startAngle = 2.25 * Math.PI;
1379          endAngle = 2.4;
1380          circ = 1.53 + Math.PI;
1381          quart = 0.73 + Math.PI / 0.996;
1382        }
1383      }
1384
1385      /**
1386             * adds text to circle
1387             *
1388             * @param obj
1389             * @param cssClass
1390             * @param lineHeight
1391             */
1392      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
1393      function addCircleText(obj, cssClass, lineHeight) {
1394        opticStats("<span></span>")
1395          .appendTo(obj)
1396          .addClass(cssClass)
1397          .html(text)
1398          .prepend(icon)
1399          .css({
1400          //'line-height': lineHeight + 'px',
1401          'font-size': customSettingsObj.fontsize + 'px',
1402          'line-height': customSettingsObj.fontsize + 'px'
1403        });
1404      }
1405
1406      /**
1407             * adds info text to circle
1408             *
1409             * @param obj
1410             * @param factor
1411             */
1412      function addInfoText(obj, factor) {
1413        opticStats('<span></span>')
1414          .appendTo(obj)
1415          .addClass('circle-info-half')
1416        //.css(
1417        //'line-height', (customSettingsObj.dimension * factor) + 'px'
1418        //)
1419          .text(info);
1420      }
1421
1422      /**
1423             * checks which data attributes are defined
1424             * @param obj
1425             */
1426      function checkDataAttributes(obj) {
1427        opticStats.each(customSettings, function (index, attribute) {
1428          if (obj.data(attribute) != undefined) {
1429            customSettingsObj[attribute] = obj.data(attribute);
1430          } else {
1431            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
1432          }
1433
1434          if (attribute == 'fill' && obj.data('fill') != undefined) {
1435            fill = true;
1436          }
1437        });
1438      }
1439
1440      //Animation Variables
1441      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
1442      // ---------------------- //
1443      // Animation Functions
1444      // ---------------------- //
1445      function blend(inColor,outColor,current){
1446        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
1447            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
1448            r,g,b,a,cur;
1449        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
1450        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
1451        if(current < .5 ) {
1452          cur = current*2;
1453          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
1454          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
1455          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
1456        } else {
1457          cur = (current-.5)*2;
1458          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
1459          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
1460          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
1461        }
1462        var a = inColors[3]+((outColors[3] - inColors[3])*current);
1463        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
1464      }
1465      if (type == 'line' || type == 'vert-line') {
1466        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
1467      }
1468      var increaseInc = function(inc, current) {
1469        if (current >= 1) {
1470          //          slowTheInc += 0.00002;
1471          //          slowTheInc = Math.min(slowTheInc, 0.005);
1472          //          inc = inc + (0.005-slowTheInc);
1473        } else {
1474          inc += 0.005;
1475        }
1476        return inc;
1477      }
1478      var moveColors = function(value, inc) {
1479        var pos = value+inc;
1480        pos = pos.toString();
1481        pos = pos.split(".").pop();
1482        pos = parseFloat("."+pos);
1483        return pos;
1484      }
1485      var createGrad = function(inc,sizeX, sizeY) {
1486        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
1487        grd.addColorStop(moveColors(0, inc),"#FF0000");
1488        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
1489        grd.addColorStop(moveColors(.2, inc),"#00FF00");
1490        grd.addColorStop(moveColors(.3, inc),"#0000FF");
1491        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
1492        grd.addColorStop(moveColors(.5, inc),"#FF0000");
1493        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
1494        grd.addColorStop(moveColors(.7, inc),"#00FF00");
1495        grd.addColorStop(moveColors(.8, inc),"#0000FF");
1496        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
1497        grd.addColorStop(moveColors(1, inc),"#FF0000");
1498        return grd;
1499      }
1500      var shadowGlow = function() {
1501        context.shadowColor = customSettingsObj.fgcolor;
1502        context.shadowOffsetX = 0;
1503        context.shadowOffsetY = 0;
1504        context.shadowBlur = 10;
1505      }
1506      var drawBorder = function() {
1507        context.lineWidth = customSettingsObj.bordersize + 1;
1508        context.strokeStyle = customSettingsObj.bgcolor;
1509        context.stroke();
1510        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
1511          //
1512        } else {
1513          context.fillStyle = customSettingsObj.fill;
1514          context.fill();
1515        }
1516        context.beginPath();
1517        context.save();
1518      }
1519      var fillAnimation = function(animationType, current) {
1520        if(animationType == 1){
1521          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
1522          context.stroke();
1523        } else if(animationType == 2){
1524          context.strokeStyle = customSettingsObj.fgcolor;
1525          if (type == 'line') {
1526            var grd=context.createLinearGradient(sizeX,0,0,0);
1527            grd.addColorStop(0,"white");
1528            grd.addColorStop(1,customSettingsObj.fgcolor);
1529            context.strokeStyle = grd;
1530            shadowGlow();
1531          } else if (type == 'vert-line') {
1532            var grd=context.createLinearGradient(0,0,0,sizeY);
1533            grd.addColorStop(0,"white");
1534            grd.addColorStop(1,customSettingsObj.fgcolor);
1535            context.strokeStyle = grd;
1536            shadowGlow();
1537          } else {
1538            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
1539            grd.addColorStop(0, customSettingsObj.fgcolor);
1540            grd.addColorStop(0.5, 'white');
1541            grd.addColorStop(1, customSettingsObj.fgcolor);
1542            context.strokeStyle = grd;
1543            shadowGlow();
1544          }
1545          context.stroke();
1546          context.restore();
1547        } else if(animationType == 3){
1548          if (type == 'line') {
1549            var grd = createGrad(inc,sizeX,sizeY);
1550            inc = increaseInc(inc,current);
1551            context.strokeStyle = grd;
1552          } else if (type == 'vert-line') {
1553            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
1554            grd.addColorStop(moveColors(0, inc),"#FF0000");
1555            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
1556            grd.addColorStop(moveColors(.2, inc),"#00FF00");
1557            grd.addColorStop(moveColors(.3, inc),"#0000FF");
1558            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
1559            grd.addColorStop(moveColors(.5, inc),"#FF0000");
1560            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
1561            grd.addColorStop(moveColors(.7, inc),"#00FF00");
1562            grd.addColorStop(moveColors(.8, inc),"#0000FF");
1563            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
1564            grd.addColorStop(moveColors(1, inc),"#FF0000");
1565            inc = increaseInc(inc,current);
1566            context.strokeStyle = grd;
1567          } else {
1568            var grd = createGrad(inc,sizeX,sizeY);
1569            inc = increaseInc(inc,current);
1570            context.strokeStyle = grd;
1571          }
1572          context.stroke();
1573          context.restore();
1574        } else {
1575          context.strokeStyle = customSettingsObj.fgcolor;
1576          context.stroke();
1577        }
1578      }
1579      // ---------------------- //
1580      // Animation
1581      // ---------------------- //
1582      function animate(current) {
1583        //Clear Canvas for next frame
1584        context.clearRect(0, 0, canvas.width, canvas.height);
1585        //Draw Background
1586        if (type == 'line' || type == 'vert-line') {
1587          context.rect(10, 10, sizeX-20, sizeY-20);
1588        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
1589          context.beginPath();
1590          context.arc(x, y, radius, endAngle, startAngle, false);
1591        }
1592        context.fillStyle = customSettingsObj.fill;
1593        context.fill();
1594        if (type == 'line') {
1595          context.beginPath();
1596          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
1597          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
1598          drawBorder();
1599          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
1600          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
1601          fillAnimation(animationType,current);
1602        } else if (type == 'vert-line'){
1603          context.beginPath();
1604          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
1605          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
1606          drawBorder();
1607          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
1608          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
1609          fillAnimation(animationType,current);
1610        } else if (type == 'full' || type=='half') {
1611          drawBorder();
1612          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
1613          fillAnimation(animationType,current);
1614        } else if (type == 'grow-circle') {
1615          drawBorder();
1616          var fillRadius = sizeX/2.5*Math.min(current,1);
1617          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
1618          if(animationType == 1){
1619            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
1620            context.fill();
1621          } else if(animationType == 2){
1622            var grd=context.createLinearGradient(0,0,0,sizeY);
1623            grd.addColorStop(0,"white");
1624            grd.addColorStop(1,customSettingsObj.fgcolor);
1625            shadowGlow();
1626            context.fillStyle = grd;
1627            context.fill();
1628          } else if(animationType == 3){
1629            var grd = createGrad(inc,sizeX,sizeY);
1630            inc = increaseInc(inc,current);
1631            context.fillStyle = grd;
1632            context.fill();
1633          } else {
1634            context.fillStyle = customSettingsObj.fgcolor;
1635            context.fill();
1636          }
1637          context.restore();
1638        } else if (type == 'fill-circle') {
1639          drawBorder();
1640          var fillRadius = sizeX/2.5,
1641              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
1642          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
1643          if(animationType == 1){
1644            context.clip();
1645            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
1646            context.fillRect(0, fillLine, sizeX, sizeY);
1647          } else if(animationType == 2){
1648            var grd=context.createLinearGradient(0,0,0,sizeY);
1649            grd.addColorStop(0,"white");
1650            grd.addColorStop(1,customSettingsObj.fgcolor);
1651            shadowGlow();
1652            context.clip();
1653            context.fillStyle = grd;
1654            context.fillRect(0, fillLine, sizeX, sizeY);
1655
1656          } else if(animationType == 3){
1657            context.clip();
1658            var grd = createGrad(inc,sizeX, sizeY);
1659            inc = increaseInc(inc,current);
1660            context.fillStyle = grd;
1661            context.fillRect(0, fillLine, sizeX, sizeY);
1662          } else {
1663            context.clip();
1664            context.fillStyle = customSettingsObj.fgcolor;
1665            context.fillRect(0, fillLine, sizeX, sizeY);
1666          }
1667          context.restore();
1668        } else if (type == 'fill-circle-wave') {
1669          drawBorder();
1670          var fillRadius = sizeX/2.5,
1671              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
1672          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
1673          var ypos=fillLine, xpos=0;
1674          counter += .1;
1675          counterLoop = counter;
1676          var increase = 2*Math.PI / 12;
1677          context.clip();
1678          context.beginPath();
1679          context.moveTo(sizeX,sizeY);
1680          context.lineTo(0,sizeY);
1681          context.lineTo(0,ypos);
1682          if (curPerc > endPercent) {
1683            calm-=.01;
1684            if(calm<0) calm=0;
1685          }
1686          for(i=0; i<=sizeX; i+=10){
1687            xpos = i;
1688            ypos =  ypos - Math.sin(counterLoop) * calm;
1689            counterLoop += increase;
1690            context.lineTo(xpos,ypos);
1691          }
1692          context.lineTo(sizeX,sizeY);
1693          context.closePath();
1694          if(animationType == 1){
1695            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
1696            context.fill();
1697          } else if(animationType == 2){
1698            var grd=context.createLinearGradient(0,0,0,sizeY);
1699            grd.addColorStop(0,"white");
1700            grd.addColorStop(1,customSettingsObj.fgcolor);
1701            shadowGlow();
1702            context.clip();
1703            context.fillStyle = grd;
1704            context.fill();
1705          } else if(animationType == 3){
1706            context.clip();
1707            var grd = createGrad(inc,sizeX,sizeY);
1708            inc = increaseInc(inc,current);
1709            context.fillStyle = grd;
1710            context.fill();
1711          } else {
1712            context.clip();
1713            context.fillStyle = customSettingsObj.fgcolor;
1714            context.fill();
1715          }
1716          context.restore();
1717        }
1718
1719        if (curPerc < endPercent) {
1720          curPerc += curStep;
1721          requestAnimationFrame(function () {
1722            context.strokeStyle = customSettingsObj.fgcolor;
1723            animate(Math.min(curPerc, endPercent) / 100);
1724          }, obj);
1725        } else if(finishFrames < 500) {
1726          curPerc += curStep;
1727          finishFrames+=1;
1728          requestAnimationFrame(function () {
1729            context.strokeStyle = customSettingsObj.fgcolor;
1730            animate(Math.min(curPerc, endPercent) / 100);
1731          }, obj);
1732        }
1733
1734        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
1735          if (opticStats.isFunction(options.complete)) {
1736            options.complete();
1737
1738            fireCallback = false;
1739          }
1740        }
1741      }
1742      obj.waypoint(function(direction){
1743        animate(curPerc / 100);
1744        this.destroy();
1745      }, { offset: '100%' });
1746    });
1747  };
1748}(opticStats));
1749/*
1750 The MIT License (MIT)
1751 CountUp
1752+Copyright (c) 2014-2015 Jamie Perkins
1753 Permission is hereby granted, free of charge, to any person obtaining a copy of
1754 this software and associated documentation files (the "Software"), to deal in
1755*/
1756!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
1757/*!
1758Waypoints - 4.0.0
1759Copyright © 2011-2015 Caleb Troughton
1760Licensed under the MIT license.
1761https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
1762*/
1763!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");
vendor: 6,526 bytes, line 1763
1763this.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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
1763ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
1764
1765opticStats( document ).ready(function() {
1766  var speed =  3000,
1767      countNumberstacks_in_33273 = "50",
1768      decimalNumber = '0',
1769      decimalNumber = decimalNumber.replace(/\D/g,''),
1770      decimalLength = decimalNumber.length,
1771      maxValuePercentstacks_in_33273 = (countNumberstacks_in_33273/50),
1772      speedA = (2000/speed)*maxValuePercentstacks_in_33273;
1773  if (50 == 0) {
1774    if(countNumberstacks_in_33273 < 0) {
1775      maxValuePercentstacks_in_33273 = 1;
1776    } else {
1777      maxValuePercentstacks_in_33273 = (0-countNumberstacks_in_33273)/0;
1778    }
1779  }
1780  if('False' == 'False' ) {
1781     decimalLength = 0;
1782  } else {
1783    countNumberstacks_in_33273 = countNumberstacks_in_33273.replace(/\D/g,'');
1784    countNumberstacks_in_33273 = countNumberstacks_in_33273+"."+decimalNumber;
1785  }
1786  if('False' == 'True' ) {
1787    var items = readData_data(opticStats("#data"));
1788    countNumberstacks_in_33273 = items['data-A1'];
1789    if(countNumberstacks_in_33273 ==  null) {
1790      countNumberstacks_in_33273 = '0';
1791    }
1792    opticStats("#stat_stacks_in_33273").data("percent", maxValuePercentstacks_in_33273*100);
1793    //
1794    //
1795    if(countNumberstacks_in_33273.indexOf(".") !== -1) {
1796      decimalNumber = countNumberstacks_in_33273.substr(countNumberstacks_in_33273.indexOf(".") + 1);
1797      decimalNumber = decimalNumber.replace(/\D/g,'');
1798      decimalLength = decimalNumber.length;
1799      countNumberstacks_in_33273 = countNumberstacks_in_33273.substr(0, countNumberstacks_in_33273.indexOf('.'));
1800    }
1801    //
1802    //
1803    countNumberstacks_in_33273 = countNumberstacks_in_33273.replace(/[^0-9\-]/g,'');
1804    countNumberstacks_in_33273 = countNumberstacks_in_33273+"."+decimalNumber;
1805    maxValuePercentstacks_in_33273 = (countNumberstacks_in_33273/50);
1806    if (50 == 0) {
1807      if(countNumberstacks_in_33273 < 0) {
1808        maxValuePercentstacks_in_33273 = 1;
1809      } else {
1810        maxValuePercentstacks_in_33273 = (0-countNumberstacks_in_33273)/0;
1811      }
1812    }
1813    speedA = (2000/speed)*maxValuePercentstacks_in_33273;
1814    opticStats("#stat_stacks_in_33273").data("percent", maxValuePercentstacks_in_33273*100);
1815  } else {
1816    var maxValuePercentstacks_in_33273 = (countNumberstacks_in_33273/50);
1817    if (50 == 0) {
1818      if(countNumberstacks_in_33273 < 0) {
1819        maxValuePercentstacks_in_33273 = 1;
1820      } else {
1821        maxValuePercentstacks_in_33273 = (0-countNumberstacks_in_33273)/0;
1822      }
1823    }
1824    speedA = (2000/speed)*maxValuePercentstacks_in_33273;
1825    opticStats("#stat_stacks_in_33273").data("percent", maxValuePercentstacks_in_33273*100);
1826  }
1827  opticStats('#stat_stacks_in_33273').attr("data-animationstep", speedA);
1828  opticStats('#stat_stacks_in_33273').circliful();
1829  opticStats('#stat_stacks_in_33273').waypoint(function(direction){
1830
1831  //
1832//  opticStats('#stacks_in_33273 .counter').counterUp({
1833//    delay: 10,
1834//    time: speed
1835//  });
1836
1837    var options = {
1838      //
1839      useGrouping : false,
1840      //
1841      //
1842      separator : ',',
1843      decimal : '.',
1844      //
1845      //
1846      //
1847      useEasing : false
1848    };
1849    opticStats('#stacks_in_33273 .counter').attr("id", "count_stacks_in_33273");
1850    var count = new CountUp('count_stacks_in_33273', 0, countNumberstacks_in_33273, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33273), options);//(1.75/speedA)*(maxValuePercentstacks_in_33273)
1851    count.start();
1852    //
1853    //
1854    opticStats('#stat_stacks_in_33273 .circle-text').append("");
1855    opticStats('#stat_stacks_in_33273 .circle-text-half').append("");
1856    //
1857    //
1858    //
1859    //
1860    opticStats('#stat_stacks_in_33273 span > .osIcon').wrap("<div class='os-icon-wrap' />")
1861    opticStats('#stat_stacks_in_33273 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33273 .centerMe > div > span:first-child'));
1862    //
1863    //
1864    scale();
1865    this.destroy();
1866  }, { offset: '100%' });
1867
1868
1869});
1870
1871opticStats( window ).resize(function() {
1872  scale();
1873});
1874function scale() {
1875  var width = 330,
1876      currentWidth = opticStats('#stat_stacks_in_33273').parent().outerWidth();
1877  if(currentWidth < width) {
1878    var scale = currentWidth/width;
1879    opticStats('#stat_stacks_in_33273').css({
1880      "transform" : "scale("+scale+")",
1881      "transform-origin" : "0px",
1882      "-o-transform" : "scale("+scale+")",
1883      "-o-transform-origin" : "0px"
1884    });
1885  } else {
1886    opticStats('#stat_stacks_in_33273').css({
1887      "transform" : "scale(1)",
1888      "-o-transform" : "scale(1)"
1889    });
1890  }
1891}
1892
1893return stack;})(stacks.stacks_in_33273);
1894stacks.stacks_in_33274 = {};
1895stacks.stacks_in_33274 = (function(stack) {
1896
1897return stack;})(stacks.stacks_in_33274);
1898stacks.stacks_in_33280 = {};
1899stacks.stacks_in_33280 = (function(stack) {
1900var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
1901/*
1902jquery-plugin-circliful
1903+The MIT License (MIT)
1904+
1905+Copyright (c) 2014 Patric Gutersohn
1906+
1907+Permission is hereby granted, free of charge, to any person obtaining a copy of
1908+this software and associated documentation files (the "Software"), to deal in
1909+the Software without restriction, including without limitation the rights to
1910+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
1911+the Software, and to permit persons to whom the Software is furnished to do so,
1912+subject to the following conditions:
1913+
1914+The above copyright notice and this permission notice shall be included in all
1915+copies or substantial portions of the Software.
1916+
1917+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1918+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
1919+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
1920+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
1921+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
1922+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1923*/
1924"use strict";
1925
1926(function (opticStats) {
1927
1928  opticStats.fn.circliful = function (options, callback) {
1929
1930    var settings = opticStats.extend({
1931      // These are the defaults.
1932      startdegree: 0,
1933      fgcolor: "#556b2f",
1934      bgcolor: "#eee",
1935      fill: false,
1936      width: 15,
1937      dimension: 200,
1938      fontsize: 15,
1939      percent: 50,
1940      animationstep: 1.0,
1941      iconsize: '20px',
1942      iconcolor: '#999',
1943      border: 'default',
1944      complete: null,
1945      bordersize: 10
1946    }, options);
1947
1948    return this.each(function () {
1949
1950      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
1951
1952      var customSettingsObj = {};
1953      var icon = '';
1954      var percent;
1955      var endPercent = 0;
1956      var obj = opticStats(this);
1957      var fill = false;
1958      var text, info;
1959
1960      obj.addClass('circliful');
1961
1962      checkDataAttributes(obj);
1963
1964      if (obj.data('text') != undefined) {
1965
1966        //remove non number characters
1967
1968        text = obj.data('text');
1969        text = text.toString();
1970        text = text.replace(/[^0-9.,]/g, '');
1971        text = "<span class='counter'>" + text + "</span>";
1972
1973        if (obj.data('icon') != undefined) {
1974          icon = opticStats('<i></i>')
1975            .addClass('osIcon fa ' + opticStats(this).data('icon'))
1976            .css({
1977            'color': customSettingsObj.iconcolor,
1978            'font-size': customSettingsObj.iconsize,
1979            'line-height': customSettingsObj.iconsize + "px"
1980          });
1981        }
1982        if (obj.data('icon-custom') != undefined) {
1983          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
1984            .addClass('osIcon ')
1985            .css({
1986            'width': customSettingsObj.iconsize,
1987            'height': customSettingsObj.iconsize
1988          });
1989        }
1990
1991        if (obj.data('type') != undefined) {
1992          type = opticStats(this).data('type');
1993
1994          if (type == 'half') {
1995            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
1996          } else {
1997            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
1998          }
1999        } else {
2000          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
2001        }
2002      }
2003
2004      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
2005        var total = opticStats(this).data("total") / 100;
2006
2007        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
2008        endPercent = (opticStats(this).data("part") / total).toFixed(3);
2009      } else {
2010        if (opticStats(this).data("percent") != undefined) {
2011          percent = opticStats(this).data("percent") / 100;
2012          endPercent = opticStats(this).data("percent");
2013        } else {
2014          percent = settings.percent / 100;
2015        }
2016      }
2017
2018      if (opticStats(this).data('info') != undefined) {
2019        info = opticStats(this).data('info');
2020
2021        if (opticStats(this).data('type') != undefined) {
2022          type = opticStats(this).data('type');
2023
2024          if (type == 'half') {
2025            addInfoText(obj, 0.9);
2026          } else {
2027            addInfoText(obj, 1.25);
2028          }
2029        } else {
2030          addInfoText(obj, 1.25);
2031        }
2032      }
2033
2034      opticStats(this).width(customSettingsObj.dimension + 'px');
2035      if (type == 'line' || type == 'vert-line') {
2036        opticStats(this).height(opticStats(this).data('height') + 'px');
2037      } else {
2038        opticStats(this).height(customSettingsObj.dimension + 'px');
2039      }
2040
2041
2042      var sizeX = customSettingsObj.dimension,
2043          sizeY = customSettingsObj.dimension;
2044      if (type == 'line' || type == 'vert-line') {
2045        sizeY = opticStats(this).data('height');
2046      }
2047      var canvas = opticStats('<canvas></canvas>').attr({
2048        width: sizeX,
2049        height: sizeY
2050      }).appendTo(opticStats(this)).get(0);
2051      var context = canvas.getContext('2d');
2052
2053      var dpr = window.devicePixelRatio;
2054      if ( dpr ) {
2055        var opticStatscanvas = opticStats(canvas);
2056        opticStatscanvas.css('width', sizeX);
2057        opticStatscanvas.css('height', sizeY);
2058        opticStatscanvas.attr('width', sizeX * dpr);
2059        opticStatscanvas.attr('height', sizeY * dpr);
2060
2061        context.scale(dpr, dpr);
2062      }
2063
2064      var container = opticStats(canvas).parent();
2065      var x = sizeX / 2;
2066      var y = sizeY / 2;
2067      var degrees = customSettingsObj.percent * 360.0;
2068      var radians = degrees * (Math.PI / 180);
2069      var radius = sizeX / 2.5;
2070      var startAngle = 2.3 * Math.PI;
2071      var endAngle = 0;
2072      var counterClockwise = false;
2073      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
2074      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
2075      var circ = Math.PI * 2;
2076      var quart = Math.PI / 2;
2077      var type = '';
2078      var fireCallback = true;
2079      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
2080
2081      if (opticStats(this).data('type') != undefined) {
2082        type = opticStats(this).data('type');
2083        if (type == 'half') {
2084          startAngle = 2.0 * Math.PI;
2085          endAngle = 3.14;
2086          circ = Math.PI;
2087          quart = Math.PI / 0.996;
2088        } else if (type == 'angle') {
2089          startAngle = 2.25 * Math.PI;
2090          endAngle = 2.4;
2091          circ = 1.53 + Math.PI;
2092          quart = 0.73 + Math.PI / 0.996;
2093        }
2094      }
2095
2096      /**
2097             * adds text to circle
2098             *
2099             * @param obj
2100             * @param cssClass
2101             * @param lineHeight
2102             */
2103      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
2104      function addCircleText(obj, cssClass, lineHeight) {
2105        opticStats("<span></span>")
2106          .appendTo(obj)
2107          .addClass(cssClass)
2108          .html(text)
2109          .prepend(icon)
2110          .css({
2111          //'line-height': lineHeight + 'px',
2112          'font-size': customSettingsObj.fontsize + 'px',
2113          'line-height': customSettingsObj.fontsize + 'px'
2114        });
2115      }
2116
2117      /**
2118             * adds info text to circle
2119             *
2120             * @param obj
2121             * @param factor
2122             */
2123      function addInfoText(obj, factor) {
2124        opticStats('<span></span>')
2125          .appendTo(obj)
2126          .addClass('circle-info-half')
2127        //.css(
2128        //'line-height', (customSettingsObj.dimension * factor) + 'px'
2129        //)
2130          .text(info);
2131      }
2132
2133      /**
2134             * checks which data attributes are defined
2135             * @param obj
2136             */
2137      function checkDataAttributes(obj) {
2138        opticStats.each(customSettings, function (index, attribute) {
2139          if (obj.data(attribute) != undefined) {
2140            customSettingsObj[attribute] = obj.data(attribute);
2141          } else {
2142            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
2143          }
2144
2145          if (attribute == 'fill' && obj.data('fill') != undefined) {
2146            fill = true;
2147          }
2148        });
2149      }
2150
2151      //Animation Variables
2152      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
2153      // ---------------------- //
2154      // Animation Functions
2155      // ---------------------- //
2156      function blend(inColor,outColor,current){
2157        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
2158            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
2159            r,g,b,a,cur;
2160        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
2161        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
2162        if(current < .5 ) {
2163          cur = current*2;
2164          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
2165          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
2166          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
2167        } else {
2168          cur = (current-.5)*2;
2169          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
2170          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
2171          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
2172        }
2173        var a = inColors[3]+((outColors[3] - inColors[3])*current);
2174        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
2175      }
2176      if (type == 'line' || type == 'vert-line') {
2177        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
2178      }
2179      var increaseInc = function(inc, current) {
2180        if (current >= 1) {
2181          //          slowTheInc += 0.00002;
2182          //          slowTheInc = Math.min(slowTheInc, 0.005);
2183          //          inc = inc + (0.005-slowTheInc);
2184        } else {
2185          inc += 0.005;
2186        }
2187        return inc;
2188      }
2189      var moveColors = function(value, inc) {
2190        var pos = value+inc;
2191        pos = pos.toString();
2192        pos = pos.split(".").pop();
2193        pos = parseFloat("."+pos);
2194        return pos;
2195      }
2196      var createGrad = function(inc,sizeX, sizeY) {
2197        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
2198        grd.addColorStop(moveColors(0, inc),"#FF0000");
2199        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
2200        grd.addColorStop(moveColors(.2, inc),"#00FF00");
2201        grd.addColorStop(moveColors(.3, inc),"#0000FF");
2202        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
2203        grd.addColorStop(moveColors(.5, inc),"#FF0000");
2204        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
2205        grd.addColorStop(moveColors(.7, inc),"#00FF00");
2206        grd.addColorStop(moveColors(.8, inc),"#0000FF");
2207        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
2208        grd.addColorStop(moveColors(1, inc),"#FF0000");
2209        return grd;
2210      }
2211      var shadowGlow = function() {
2212        context.shadowColor = customSettingsObj.fgcolor;
2213        context.shadowOffsetX = 0;
2214        context.shadowOffsetY = 0;
2215        context.shadowBlur = 10;
2216      }
2217      var drawBorder = function() {
2218        context.lineWidth = customSettingsObj.bordersize + 1;
2219        context.strokeStyle = customSettingsObj.bgcolor;
2220        context.stroke();
2221        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
2222          //
2223        } else {
2224          context.fillStyle = customSettingsObj.fill;
2225          context.fill();
2226        }
2227        context.beginPath();
2228        context.save();
2229      }
2230      var fillAnimation = function(animationType, current) {
2231        if(animationType == 1){
2232          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
2233          context.stroke();
2234        } else if(animationType == 2){
2235          context.strokeStyle = customSettingsObj.fgcolor;
2236          if (type == 'line') {
2237            var grd=context.createLinearGradient(sizeX,0,0,0);
2238            grd.addColorStop(0,"white");
2239            grd.addColorStop(1,customSettingsObj.fgcolor);
2240            context.strokeStyle = grd;
2241            shadowGlow();
2242          } else if (type == 'vert-line') {
2243            var grd=context.createLinearGradient(0,0,0,sizeY);
2244            grd.addColorStop(0,"white");
2245            grd.addColorStop(1,customSettingsObj.fgcolor);
2246            context.strokeStyle = grd;
2247            shadowGlow();
2248          } else {
2249            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
2250            grd.addColorStop(0, customSettingsObj.fgcolor);
2251            grd.addColorStop(0.5, 'white');
2252            grd.addColorStop(1, customSettingsObj.fgcolor);
2253            context.strokeStyle = grd;
2254            shadowGlow();
2255          }
2256          context.stroke();
2257          context.restore();
2258        } else if(animationType == 3){
2259          if (type == 'line') {
2260            var grd = createGrad(inc,sizeX,sizeY);
2261            inc = increaseInc(inc,current);
2262            context.strokeStyle = grd;
2263          } else if (type == 'vert-line') {
2264            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
2265            grd.addColorStop(moveColors(0, inc),"#FF0000");
2266            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
2267            grd.addColorStop(moveColors(.2, inc),"#00FF00");
2268            grd.addColorStop(moveColors(.3, inc),"#0000FF");
2269            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
2270            grd.addColorStop(moveColors(.5, inc),"#FF0000");
2271            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
2272            grd.addColorStop(moveColors(.7, inc),"#00FF00");
2273            grd.addColorStop(moveColors(.8, inc),"#0000FF");
2274            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
2275            grd.addColorStop(moveColors(1, inc),"#FF0000");
2276            inc = increaseInc(inc,current);
2277            context.strokeStyle = grd;
2278          } else {
2279            var grd = createGrad(inc,sizeX,sizeY);
2280            inc = increaseInc(inc,current);
2281            context.strokeStyle = grd;
2282          }
2283          context.stroke();
2284          context.restore();
2285        } else {
2286          context.strokeStyle = customSettingsObj.fgcolor;
2287          context.stroke();
2288        }
2289      }
2290      // ---------------------- //
2291      // Animation
2292      // ---------------------- //
2293      function animate(current) {
2294        //Clear Canvas for next frame
2295        context.clearRect(0, 0, canvas.width, canvas.height);
2296        //Draw Background
2297        if (type == 'line' || type == 'vert-line') {
2298          context.rect(10, 10, sizeX-20, sizeY-20);
2299        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
2300          context.beginPath();
2301          context.arc(x, y, radius, endAngle, startAngle, false);
2302        }
2303        context.fillStyle = customSettingsObj.fill;
2304        context.fill();
2305        if (type == 'line') {
2306          context.beginPath();
2307          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
2308          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
2309          drawBorder();
2310          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
2311          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
2312          fillAnimation(animationType,current);
2313        } else if (type == 'vert-line'){
2314          context.beginPath();
2315          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
2316          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
2317          drawBorder();
2318          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
2319          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
2320          fillAnimation(animationType,current);
2321        } else if (type == 'full' || type=='half') {
2322          drawBorder();
2323          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
2324          fillAnimation(animationType,current);
2325        } else if (type == 'grow-circle') {
2326          drawBorder();
2327          var fillRadius = sizeX/2.5*Math.min(current,1);
2328          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
2329          if(animationType == 1){
2330            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
2331            context.fill();
2332          } else if(animationType == 2){
2333            var grd=context.createLinearGradient(0,0,0,sizeY);
2334            grd.addColorStop(0,"white");
2335            grd.addColorStop(1,customSettingsObj.fgcolor);
2336            shadowGlow();
2337            context.fillStyle = grd;
2338            context.fill();
2339          } else if(animationType == 3){
2340            var grd = createGrad(inc,sizeX,sizeY);
2341            inc = increaseInc(inc,current);
2342            context.fillStyle = grd;
2343            context.fill();
2344          } else {
2345            context.fillStyle = customSettingsObj.fgcolor;
2346            context.fill();
2347          }
2348          context.restore();
2349        } else if (type == 'fill-circle') {
2350          drawBorder();
2351          var fillRadius = sizeX/2.5,
2352              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
2353          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
2354          if(animationType == 1){
2355            context.clip();
2356            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
2357            context.fillRect(0, fillLine, sizeX, sizeY);
2358          } else if(animationType == 2){
2359            var grd=context.createLinearGradient(0,0,0,sizeY);
2360            grd.addColorStop(0,"white");
2361            grd.addColorStop(1,customSettingsObj.fgcolor);
2362            shadowGlow();
2363            context.clip();
2364            context.fillStyle = grd;
2365            context.fillRect(0, fillLine, sizeX, sizeY);
2366
2367          } else if(animationType == 3){
2368            context.clip();
2369            var grd = createGrad(inc,sizeX, sizeY);
2370            inc = increaseInc(inc,current);
2371            context.fillStyle = grd;
2372            context.fillRect(0, fillLine, sizeX, sizeY);
2373          } else {
2374            context.clip();
2375            context.fillStyle = customSettingsObj.fgcolor;
2376            context.fillRect(0, fillLine, sizeX, sizeY);
2377          }
2378          context.restore();
2379        } else if (type == 'fill-circle-wave') {
2380          drawBorder();
2381          var fillRadius = sizeX/2.5,
2382              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
2383          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
2384          var ypos=fillLine, xpos=0;
2385          counter += .1;
2386          counterLoop = counter;
2387          var increase = 2*Math.PI / 12;
2388          context.clip();
2389          context.beginPath();
2390          context.moveTo(sizeX,sizeY);
2391          context.lineTo(0,sizeY);
2392          context.lineTo(0,ypos);
2393          if (curPerc > endPercent) {
2394            calm-=.01;
2395            if(calm<0) calm=0;
2396          }
2397          for(i=0; i<=sizeX; i+=10){
2398            xpos = i;
2399            ypos =  ypos - Math.sin(counterLoop) * calm;
2400            counterLoop += increase;
2401            context.lineTo(xpos,ypos);
2402          }
2403          context.lineTo(sizeX,sizeY);
2404          context.closePath();
2405          if(animationType == 1){
2406            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
2407            context.fill();
2408          } else if(animationType == 2){
2409            var grd=context.createLinearGradient(0,0,0,sizeY);
2410            grd.addColorStop(0,"white");
2411            grd.addColorStop(1,customSettingsObj.fgcolor);
2412            shadowGlow();
2413            context.clip();
2414            context.fillStyle = grd;
2415            context.fill();
2416          } else if(animationType == 3){
2417            context.clip();
2418            var grd = createGrad(inc,sizeX,sizeY);
2419            inc = increaseInc(inc,current);
2420            context.fillStyle = grd;
2421            context.fill();
2422          } else {
2423            context.clip();
2424            context.fillStyle = customSettingsObj.fgcolor;
2425            context.fill();
2426          }
2427          context.restore();
2428        }
2429
2430        if (curPerc < endPercent) {
2431          curPerc += curStep;
2432          requestAnimationFrame(function () {
2433            context.strokeStyle = customSettingsObj.fgcolor;
2434            animate(Math.min(curPerc, endPercent) / 100);
2435          }, obj);
2436        } else if(finishFrames < 500) {
2437          curPerc += curStep;
2438          finishFrames+=1;
2439          requestAnimationFrame(function () {
2440            context.strokeStyle = customSettingsObj.fgcolor;
2441            animate(Math.min(curPerc, endPercent) / 100);
2442          }, obj);
2443        }
2444
2445        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
2446          if (opticStats.isFunction(options.complete)) {
2447            options.complete();
2448
2449            fireCallback = false;
2450          }
2451        }
2452      }
2453      obj.waypoint(function(direction){
2454        animate(curPerc / 100);
2455        this.destroy();
2456      }, { offset: '100%' });
2457    });
2458  };
2459}(opticStats));
2460/*
2461 The MIT License (MIT)
2462 CountUp
2463+Copyright (c) 2014-2015 Jamie Perkins
2464 Permission is hereby granted, free of charge, to any person obtaining a copy of
2465 this software and associated documentation files (the "Software"), to deal in
2466*/
2467!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
2468/*!
2469Waypoints - 4.0.0
2470Copyright © 2011-2015 Caleb Troughton
2471Licensed under the MIT license.
2472https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
2473*/
2474!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");
vendor: 6,526 bytes, line 2474
2474this.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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
2474ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
2475
2476opticStats( document ).ready(function() {
2477  var speed =  3000,
2478      countNumberstacks_in_33280 = "139",
2479      decimalNumber = '0',
2480      decimalNumber = decimalNumber.replace(/\D/g,''),
2481      decimalLength = decimalNumber.length,
2482      maxValuePercentstacks_in_33280 = (countNumberstacks_in_33280/139),
2483      speedA = (2000/speed)*maxValuePercentstacks_in_33280;
2484  if (139 == 0) {
2485    if(countNumberstacks_in_33280 < 0) {
2486      maxValuePercentstacks_in_33280 = 1;
2487    } else {
2488      maxValuePercentstacks_in_33280 = (0-countNumberstacks_in_33280)/0;
2489    }
2490  }
2491  if('False' == 'False' ) {
2492     decimalLength = 0;
2493  } else {
2494    countNumberstacks_in_33280 = countNumberstacks_in_33280.replace(/\D/g,'');
2495    countNumberstacks_in_33280 = countNumberstacks_in_33280+"."+decimalNumber;
2496  }
2497  if('False' == 'True' ) {
2498    var items = readData_data(opticStats("#data"));
2499    countNumberstacks_in_33280 = items['data-A1'];
2500    if(countNumberstacks_in_33280 ==  null) {
2501      countNumberstacks_in_33280 = '0';
2502    }
2503    opticStats("#stat_stacks_in_33280").data("percent", maxValuePercentstacks_in_33280*100);
2504    //
2505    //
2506    if(countNumberstacks_in_33280.indexOf(".") !== -1) {
2507      decimalNumber = countNumberstacks_in_33280.substr(countNumberstacks_in_33280.indexOf(".") + 1);
2508      decimalNumber = decimalNumber.replace(/\D/g,'');
2509      decimalLength = decimalNumber.length;
2510      countNumberstacks_in_33280 = countNumberstacks_in_33280.substr(0, countNumberstacks_in_33280.indexOf('.'));
2511    }
2512    //
2513    //
2514    countNumberstacks_in_33280 = countNumberstacks_in_33280.replace(/[^0-9\-]/g,'');
2515    countNumberstacks_in_33280 = countNumberstacks_in_33280+"."+decimalNumber;
2516    maxValuePercentstacks_in_33280 = (countNumberstacks_in_33280/139);
2517    if (139 == 0) {
2518      if(countNumberstacks_in_33280 < 0) {
2519        maxValuePercentstacks_in_33280 = 1;
2520      } else {
2521        maxValuePercentstacks_in_33280 = (0-countNumberstacks_in_33280)/0;
2522      }
2523    }
2524    speedA = (2000/speed)*maxValuePercentstacks_in_33280;
2525    opticStats("#stat_stacks_in_33280").data("percent", maxValuePercentstacks_in_33280*100);
2526  } else {
2527    var maxValuePercentstacks_in_33280 = (countNumberstacks_in_33280/139);
2528    if (139 == 0) {
2529      if(countNumberstacks_in_33280 < 0) {
2530        maxValuePercentstacks_in_33280 = 1;
2531      } else {
2532        maxValuePercentstacks_in_33280 = (0-countNumberstacks_in_33280)/0;
2533      }
2534    }
2535    speedA = (2000/speed)*maxValuePercentstacks_in_33280;
2536    opticStats("#stat_stacks_in_33280").data("percent", maxValuePercentstacks_in_33280*100);
2537  }
2538  opticStats('#stat_stacks_in_33280').attr("data-animationstep", speedA);
2539  opticStats('#stat_stacks_in_33280').circliful();
2540  opticStats('#stat_stacks_in_33280').waypoint(function(direction){
2541
2542  //
2543//  opticStats('#stacks_in_33280 .counter').counterUp({
2544//    delay: 10,
2545//    time: speed
2546//  });
2547
2548    var options = {
2549      //
2550      useGrouping : false,
2551      //
2552      //
2553      separator : ',',
2554      decimal : '.',
2555      //
2556      //
2557      //
2558      useEasing : false
2559    };
2560    opticStats('#stacks_in_33280 .counter').attr("id", "count_stacks_in_33280");
2561    var count = new CountUp('count_stacks_in_33280', 0, countNumberstacks_in_33280, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33280), options);//(1.75/speedA)*(maxValuePercentstacks_in_33280)
2562    count.start();
2563    //
2564    //
2565    opticStats('#stat_stacks_in_33280 .circle-text').append("");
2566    opticStats('#stat_stacks_in_33280 .circle-text-half').append("");
2567    //
2568    //
2569    //
2570    //
2571    opticStats('#stat_stacks_in_33280 span > .osIcon').wrap("<div class='os-icon-wrap' />")
2572    opticStats('#stat_stacks_in_33280 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33280 .centerMe > div > span:first-child'));
2573    //
2574    //
2575    scale();
2576    this.destroy();
2577  }, { offset: '100%' });
2578
2579
2580});
2581
2582opticStats( window ).resize(function() {
2583  scale();
2584});
2585function scale() {
2586  var width = 330,
2587      currentWidth = opticStats('#stat_stacks_in_33280').parent().outerWidth();
2588  if(currentWidth < width) {
2589    var scale = currentWidth/width;
2590    opticStats('#stat_stacks_in_33280').css({
2591      "transform" : "scale("+scale+")",
2592      "transform-origin" : "0px",
2593      "-o-transform" : "scale("+scale+")",
2594      "-o-transform-origin" : "0px"
2595    });
2596  } else {
2597    opticStats('#stat_stacks_in_33280').css({
2598      "transform" : "scale(1)",
2599      "-o-transform" : "scale(1)"
2600    });
2601  }
2602}
2603
2604return stack;})(stacks.stacks_in_33280);
2605stacks.stacks_in_33281 = {};
2606stacks.stacks_in_33281 = (function(stack) {
2607
2608return stack;})(stacks.stacks_in_33281);
2609stacks.stacks_in_33287 = {};
2610stacks.stacks_in_33287 = (function(stack) {
2611var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
2612/*
2613jquery-plugin-circliful
2614+The MIT License (MIT)
2615+
2616+Copyright (c) 2014 Patric Gutersohn
2617+
2618+Permission is hereby granted, free of charge, to any person obtaining a copy of
2619+this software and associated documentation files (the "Software"), to deal in
2620+the Software without restriction, including without limitation the rights to
2621+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
2622+the Software, and to permit persons to whom the Software is furnished to do so,
2623+subject to the following conditions:
2624+
2625+The above copyright notice and this permission notice shall be included in all
2626+copies or substantial portions of the Software.
2627+
2628+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2629+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
2630+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
2631+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
2632+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2633+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2634*/
2635"use strict";
2636
2637(function (opticStats) {
2638
2639  opticStats.fn.circliful = function (options, callback) {
2640
2641    var settings = opticStats.extend({
2642      // These are the defaults.
2643      startdegree: 0,
2644      fgcolor: "#556b2f",
2645      bgcolor: "#eee",
2646      fill: false,
2647      width: 15,
2648      dimension: 200,
2649      fontsize: 15,
2650      percent: 50,
2651      animationstep: 1.0,
2652      iconsize: '20px',
2653      iconcolor: '#999',
2654      border: 'default',
2655      complete: null,
2656      bordersize: 10
2657    }, options);
2658
2659    return this.each(function () {
2660
2661      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
2662
2663      var customSettingsObj = {};
2664      var icon = '';
2665      var percent;
2666      var endPercent = 0;
2667      var obj = opticStats(this);
2668      var fill = false;
2669      var text, info;
2670
2671      obj.addClass('circliful');
2672
2673      checkDataAttributes(obj);
2674
2675      if (obj.data('text') != undefined) {
2676
2677        //remove non number characters
2678
2679        text = obj.data('text');
2680        text = text.toString();
2681        text = text.replace(/[^0-9.,]/g, '');
2682        text = "<span class='counter'>" + text + "</span>";
2683
2684        if (obj.data('icon') != undefined) {
2685          icon = opticStats('<i></i>')
2686            .addClass('osIcon fa ' + opticStats(this).data('icon'))
2687            .css({
2688            'color': customSettingsObj.iconcolor,
2689            'font-size': customSettingsObj.iconsize,
2690            'line-height': customSettingsObj.iconsize + "px"
2691          });
2692        }
2693        if (obj.data('icon-custom') != undefined) {
2694          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
2695            .addClass('osIcon ')
2696            .css({
2697            'width': customSettingsObj.iconsize,
2698            'height': customSettingsObj.iconsize
2699          });
2700        }
2701
2702        if (obj.data('type') != undefined) {
2703          type = opticStats(this).data('type');
2704
2705          if (type == 'half') {
2706            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
2707          } else {
2708            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
2709          }
2710        } else {
2711          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
2712        }
2713      }
2714
2715      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
2716        var total = opticStats(this).data("total") / 100;
2717
2718        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
2719        endPercent = (opticStats(this).data("part") / total).toFixed(3);
2720      } else {
2721        if (opticStats(this).data("percent") != undefined) {
2722          percent = opticStats(this).data("percent") / 100;
2723          endPercent = opticStats(this).data("percent");
2724        } else {
2725          percent = settings.percent / 100;
2726        }
2727      }
2728
2729      if (opticStats(this).data('info') != undefined) {
2730        info = opticStats(this).data('info');
2731
2732        if (opticStats(this).data('type') != undefined) {
2733          type = opticStats(this).data('type');
2734
2735          if (type == 'half') {
2736            addInfoText(obj, 0.9);
2737          } else {
2738            addInfoText(obj, 1.25);
2739          }
2740        } else {
2741          addInfoText(obj, 1.25);
2742        }
2743      }
2744
2745      opticStats(this).width(customSettingsObj.dimension + 'px');
2746      if (type == 'line' || type == 'vert-line') {
2747        opticStats(this).height(opticStats(this).data('height') + 'px');
2748      } else {
2749        opticStats(this).height(customSettingsObj.dimension + 'px');
2750      }
2751
2752
2753      var sizeX = customSettingsObj.dimension,
2754          sizeY = customSettingsObj.dimension;
2755      if (type == 'line' || type == 'vert-line') {
2756        sizeY = opticStats(this).data('height');
2757      }
2758      var canvas = opticStats('<canvas></canvas>').attr({
2759        width: sizeX,
2760        height: sizeY
2761      }).appendTo(opticStats(this)).get(0);
2762      var context = canvas.getContext('2d');
2763
2764      var dpr = window.devicePixelRatio;
2765      if ( dpr ) {
2766        var opticStatscanvas = opticStats(canvas);
2767        opticStatscanvas.css('width', sizeX);
2768        opticStatscanvas.css('height', sizeY);
2769        opticStatscanvas.attr('width', sizeX * dpr);
2770        opticStatscanvas.attr('height', sizeY * dpr);
2771
2772        context.scale(dpr, dpr);
2773      }
2774
2775      var container = opticStats(canvas).parent();
2776      var x = sizeX / 2;
2777      var y = sizeY / 2;
2778      var degrees = customSettingsObj.percent * 360.0;
2779      var radians = degrees * (Math.PI / 180);
2780      var radius = sizeX / 2.5;
2781      var startAngle = 2.3 * Math.PI;
2782      var endAngle = 0;
2783      var counterClockwise = false;
2784      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
2785      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
2786      var circ = Math.PI * 2;
2787      var quart = Math.PI / 2;
2788      var type = '';
2789      var fireCallback = true;
2790      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
2791
2792      if (opticStats(this).data('type') != undefined) {
2793        type = opticStats(this).data('type');
2794        if (type == 'half') {
2795          startAngle = 2.0 * Math.PI;
2796          endAngle = 3.14;
2797          circ = Math.PI;
2798          quart = Math.PI / 0.996;
2799        } else if (type == 'angle') {
2800          startAngle = 2.25 * Math.PI;
2801          endAngle = 2.4;
2802          circ = 1.53 + Math.PI;
2803          quart = 0.73 + Math.PI / 0.996;
2804        }
2805      }
2806
2807      /**
2808             * adds text to circle
2809             *
2810             * @param obj
2811             * @param cssClass
2812             * @param lineHeight
2813             */
2814      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
2815      function addCircleText(obj, cssClass, lineHeight) {
2816        opticStats("<span></span>")
2817          .appendTo(obj)
2818          .addClass(cssClass)
2819          .html(text)
2820          .prepend(icon)
2821          .css({
2822          //'line-height': lineHeight + 'px',
2823          'font-size': customSettingsObj.fontsize + 'px',
2824          'line-height': customSettingsObj.fontsize + 'px'
2825        });
2826      }
2827
2828      /**
2829             * adds info text to circle
2830             *
2831             * @param obj
2832             * @param factor
2833             */
2834      function addInfoText(obj, factor) {
2835        opticStats('<span></span>')
2836          .appendTo(obj)
2837          .addClass('circle-info-half')
2838        //.css(
2839        //'line-height', (customSettingsObj.dimension * factor) + 'px'
2840        //)
2841          .text(info);
2842      }
2843
2844      /**
2845             * checks which data attributes are defined
2846             * @param obj
2847             */
2848      function checkDataAttributes(obj) {
2849        opticStats.each(customSettings, function (index, attribute) {
2850          if (obj.data(attribute) != undefined) {
2851            customSettingsObj[attribute] = obj.data(attribute);
2852          } else {
2853            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
2854          }
2855
2856          if (attribute == 'fill' && obj.data('fill') != undefined) {
2857            fill = true;
2858          }
2859        });
2860      }
2861
2862      //Animation Variables
2863      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
2864      // ---------------------- //
2865      // Animation Functions
2866      // ---------------------- //
2867      function blend(inColor,outColor,current){
2868        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
2869            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
2870            r,g,b,a,cur;
2871        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
2872        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
2873        if(current < .5 ) {
2874          cur = current*2;
2875          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
2876          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
2877          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
2878        } else {
2879          cur = (current-.5)*2;
2880          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
2881          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
2882          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
2883        }
2884        var a = inColors[3]+((outColors[3] - inColors[3])*current);
2885        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
2886      }
2887      if (type == 'line' || type == 'vert-line') {
2888        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
2889      }
2890      var increaseInc = function(inc, current) {
2891        if (current >= 1) {
2892          //          slowTheInc += 0.00002;
2893          //          slowTheInc = Math.min(slowTheInc, 0.005);
2894          //          inc = inc + (0.005-slowTheInc);
2895        } else {
2896          inc += 0.005;
2897        }
2898        return inc;
2899      }
2900      var moveColors = function(value, inc) {
2901        var pos = value+inc;
2902        pos = pos.toString();
2903        pos = pos.split(".").pop();
2904        pos = parseFloat("."+pos);
2905        return pos;
2906      }
2907      var createGrad = function(inc,sizeX, sizeY) {
2908        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
2909        grd.addColorStop(moveColors(0, inc),"#FF0000");
2910        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
2911        grd.addColorStop(moveColors(.2, inc),"#00FF00");
2912        grd.addColorStop(moveColors(.3, inc),"#0000FF");
2913        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
2914        grd.addColorStop(moveColors(.5, inc),"#FF0000");
2915        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
2916        grd.addColorStop(moveColors(.7, inc),"#00FF00");
2917        grd.addColorStop(moveColors(.8, inc),"#0000FF");
2918        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
2919        grd.addColorStop(moveColors(1, inc),"#FF0000");
2920        return grd;
2921      }
2922      var shadowGlow = function() {
2923        context.shadowColor = customSettingsObj.fgcolor;
2924        context.shadowOffsetX = 0;
2925        context.shadowOffsetY = 0;
2926        context.shadowBlur = 10;
2927      }
2928      var drawBorder = function() {
2929        context.lineWidth = customSettingsObj.bordersize + 1;
2930        context.strokeStyle = customSettingsObj.bgcolor;
2931        context.stroke();
2932        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
2933          //
2934        } else {
2935          context.fillStyle = customSettingsObj.fill;
2936          context.fill();
2937        }
2938        context.beginPath();
2939        context.save();
2940      }
2941      var fillAnimation = function(animationType, current) {
2942        if(animationType == 1){
2943          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
2944          context.stroke();
2945        } else if(animationType == 2){
2946          context.strokeStyle = customSettingsObj.fgcolor;
2947          if (type == 'line') {
2948            var grd=context.createLinearGradient(sizeX,0,0,0);
2949            grd.addColorStop(0,"white");
2950            grd.addColorStop(1,customSettingsObj.fgcolor);
2951            context.strokeStyle = grd;
2952            shadowGlow();
2953          } else if (type == 'vert-line') {
2954            var grd=context.createLinearGradient(0,0,0,sizeY);
2955            grd.addColorStop(0,"white");
2956            grd.addColorStop(1,customSettingsObj.fgcolor);
2957            context.strokeStyle = grd;
2958            shadowGlow();
2959          } else {
2960            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
2961            grd.addColorStop(0, customSettingsObj.fgcolor);
2962            grd.addColorStop(0.5, 'white');
2963            grd.addColorStop(1, customSettingsObj.fgcolor);
2964            context.strokeStyle = grd;
2965            shadowGlow();
2966          }
2967          context.stroke();
2968          context.restore();
2969        } else if(animationType == 3){
2970          if (type == 'line') {
2971            var grd = createGrad(inc,sizeX,sizeY);
2972            inc = increaseInc(inc,current);
2973            context.strokeStyle = grd;
2974          } else if (type == 'vert-line') {
2975            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
2976            grd.addColorStop(moveColors(0, inc),"#FF0000");
2977            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
2978            grd.addColorStop(moveColors(.2, inc),"#00FF00");
2979            grd.addColorStop(moveColors(.3, inc),"#0000FF");
2980            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
2981            grd.addColorStop(moveColors(.5, inc),"#FF0000");
2982            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
2983            grd.addColorStop(moveColors(.7, inc),"#00FF00");
2984            grd.addColorStop(moveColors(.8, inc),"#0000FF");
2985            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
2986            grd.addColorStop(moveColors(1, inc),"#FF0000");
2987            inc = increaseInc(inc,current);
2988            context.strokeStyle = grd;
2989          } else {
2990            var grd = createGrad(inc,sizeX,sizeY);
2991            inc = increaseInc(inc,current);
2992            context.strokeStyle = grd;
2993          }
2994          context.stroke();
2995          context.restore();
2996        } else {
2997          context.strokeStyle = customSettingsObj.fgcolor;
2998          context.stroke();
2999        }
3000      }
3001      // ---------------------- //
3002      // Animation
3003      // ---------------------- //
3004      function animate(current) {
3005        //Clear Canvas for next frame
3006        context.clearRect(0, 0, canvas.width, canvas.height);
3007        //Draw Background
3008        if (type == 'line' || type == 'vert-line') {
3009          context.rect(10, 10, sizeX-20, sizeY-20);
3010        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
3011          context.beginPath();
3012          context.arc(x, y, radius, endAngle, startAngle, false);
3013        }
3014        context.fillStyle = customSettingsObj.fill;
3015        context.fill();
3016        if (type == 'line') {
3017          context.beginPath();
3018          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
3019          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
3020          drawBorder();
3021          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
3022          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
3023          fillAnimation(animationType,current);
3024        } else if (type == 'vert-line'){
3025          context.beginPath();
3026          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
3027          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
3028          drawBorder();
3029          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
3030          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
3031          fillAnimation(animationType,current);
3032        } else if (type == 'full' || type=='half') {
3033          drawBorder();
3034          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
3035          fillAnimation(animationType,current);
3036        } else if (type == 'grow-circle') {
3037          drawBorder();
3038          var fillRadius = sizeX/2.5*Math.min(current,1);
3039          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
3040          if(animationType == 1){
3041            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
3042            context.fill();
3043          } else if(animationType == 2){
3044            var grd=context.createLinearGradient(0,0,0,sizeY);
3045            grd.addColorStop(0,"white");
3046            grd.addColorStop(1,customSettingsObj.fgcolor);
3047            shadowGlow();
3048            context.fillStyle = grd;
3049            context.fill();
3050          } else if(animationType == 3){
3051            var grd = createGrad(inc,sizeX,sizeY);
3052            inc = increaseInc(inc,current);
3053            context.fillStyle = grd;
3054            context.fill();
3055          } else {
3056            context.fillStyle = customSettingsObj.fgcolor;
3057            context.fill();
3058          }
3059          context.restore();
3060        } else if (type == 'fill-circle') {
3061          drawBorder();
3062          var fillRadius = sizeX/2.5,
3063              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
3064          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
3065          if(animationType == 1){
3066            context.clip();
3067            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
3068            context.fillRect(0, fillLine, sizeX, sizeY);
3069          } else if(animationType == 2){
3070            var grd=context.createLinearGradient(0,0,0,sizeY);
3071            grd.addColorStop(0,"white");
3072            grd.addColorStop(1,customSettingsObj.fgcolor);
3073            shadowGlow();
3074            context.clip();
3075            context.fillStyle = grd;
3076            context.fillRect(0, fillLine, sizeX, sizeY);
3077
3078          } else if(animationType == 3){
3079            context.clip();
3080            var grd = createGrad(inc,sizeX, sizeY);
3081            inc = increaseInc(inc,current);
3082            context.fillStyle = grd;
3083            context.fillRect(0, fillLine, sizeX, sizeY);
3084          } else {
3085            context.clip();
3086            context.fillStyle = customSettingsObj.fgcolor;
3087            context.fillRect(0, fillLine, sizeX, sizeY);
3088          }
3089          context.restore();
3090        } else if (type == 'fill-circle-wave') {
3091          drawBorder();
3092          var fillRadius = sizeX/2.5,
3093              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
3094          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
3095          var ypos=fillLine, xpos=0;
3096          counter += .1;
3097          counterLoop = counter;
3098          var increase = 2*Math.PI / 12;
3099          context.clip();
3100          context.beginPath();
3101          context.moveTo(sizeX,sizeY);
3102          context.lineTo(0,sizeY);
3103          context.lineTo(0,ypos);
3104          if (curPerc > endPercent) {
3105            calm-=.01;
3106            if(calm<0) calm=0;
3107          }
3108          for(i=0; i<=sizeX; i+=10){
3109            xpos = i;
3110            ypos =  ypos - Math.sin(counterLoop) * calm;
3111            counterLoop += increase;
3112            context.lineTo(xpos,ypos);
3113          }
3114          context.lineTo(sizeX,sizeY);
3115          context.closePath();
3116          if(animationType == 1){
3117            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
3118            context.fill();
3119          } else if(animationType == 2){
3120            var grd=context.createLinearGradient(0,0,0,sizeY);
3121            grd.addColorStop(0,"white");
3122            grd.addColorStop(1,customSettingsObj.fgcolor);
3123            shadowGlow();
3124            context.clip();
3125            context.fillStyle = grd;
3126            context.fill();
3127          } else if(animationType == 3){
3128            context.clip();
3129            var grd = createGrad(inc,sizeX,sizeY);
3130            inc = increaseInc(inc,current);
3131            context.fillStyle = grd;
3132            context.fill();
3133          } else {
3134            context.clip();
3135            context.fillStyle = customSettingsObj.fgcolor;
3136            context.fill();
3137          }
3138          context.restore();
3139        }
3140
3141        if (curPerc < endPercent) {
3142          curPerc += curStep;
3143          requestAnimationFrame(function () {
3144            context.strokeStyle = customSettingsObj.fgcolor;
3145            animate(Math.min(curPerc, endPercent) / 100);
3146          }, obj);
3147        } else if(finishFrames < 500) {
3148          curPerc += curStep;
3149          finishFrames+=1;
3150          requestAnimationFrame(function () {
3151            context.strokeStyle = customSettingsObj.fgcolor;
3152            animate(Math.min(curPerc, endPercent) / 100);
3153          }, obj);
3154        }
3155
3156        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
3157          if (opticStats.isFunction(options.complete)) {
3158            options.complete();
3159
3160            fireCallback = false;
3161          }
3162        }
3163      }
3164      obj.waypoint(function(direction){
3165        animate(curPerc / 100);
3166        this.destroy();
3167      }, { offset: '100%' });
3168    });
3169  };
3170}(opticStats));
3171/*
3172 The MIT License (MIT)
3173 CountUp
3174+Copyright (c) 2014-2015 Jamie Perkins
3175 Permission is hereby granted, free of charge, to any person obtaining a copy of
3176 this software and associated documentation files (the "Software"), to deal in
3177*/
3178!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
3179/*!
3180Waypoints - 4.0.0
3181Copyright © 2011-2015 Caleb Troughton
3182Licensed under the MIT license.
3183https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
3184*/
3185!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");
vendor: 6,526 bytes, line 3185
3185this.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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
3185ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
3186
3187opticStats( document ).ready(function() {
3188  var speed =  3000,
3189      countNumberstacks_in_33287 = "36",
3190      decimalNumber = '0',
3191      decimalNumber = decimalNumber.replace(/\D/g,''),
3192      decimalLength = decimalNumber.length,
3193      maxValuePercentstacks_in_33287 = (countNumberstacks_in_33287/36),
3194      speedA = (2000/speed)*maxValuePercentstacks_in_33287;
3195  if (36 == 0) {
3196    if(countNumberstacks_in_33287 < 0) {
3197      maxValuePercentstacks_in_33287 = 1;
3198    } else {
3199      maxValuePercentstacks_in_33287 = (0-countNumberstacks_in_33287)/0;
3200    }
3201  }
3202  if('False' == 'False' ) {
3203     decimalLength = 0;
3204  } else {
3205    countNumberstacks_in_33287 = countNumberstacks_in_33287.replace(/\D/g,'');
3206    countNumberstacks_in_33287 = countNumberstacks_in_33287+"."+decimalNumber;
3207  }
3208  if('False' == 'True' ) {
3209    var items = readData_data(opticStats("#data"));
3210    countNumberstacks_in_33287 = items['data-A1'];
3211    if(countNumberstacks_in_33287 ==  null) {
3212      countNumberstacks_in_33287 = '0';
3213    }
3214    opticStats("#stat_stacks_in_33287").data("percent", maxValuePercentstacks_in_33287*100);
3215    //
3216    //
3217    if(countNumberstacks_in_33287.indexOf(".") !== -1) {
3218      decimalNumber = countNumberstacks_in_33287.substr(countNumberstacks_in_33287.indexOf(".") + 1);
3219      decimalNumber = decimalNumber.replace(/\D/g,'');
3220      decimalLength = decimalNumber.length;
3221      countNumberstacks_in_33287 = countNumberstacks_in_33287.substr(0, countNumberstacks_in_33287.indexOf('.'));
3222    }
3223    //
3224    //
3225    countNumberstacks_in_33287 = countNumberstacks_in_33287.replace(/[^0-9\-]/g,'');
3226    countNumberstacks_in_33287 = countNumberstacks_in_33287+"."+decimalNumber;
3227    maxValuePercentstacks_in_33287 = (countNumberstacks_in_33287/36);
3228    if (36 == 0) {
3229      if(countNumberstacks_in_33287 < 0) {
3230        maxValuePercentstacks_in_33287 = 1;
3231      } else {
3232        maxValuePercentstacks_in_33287 = (0-countNumberstacks_in_33287)/0;
3233      }
3234    }
3235    speedA = (2000/speed)*maxValuePercentstacks_in_33287;
3236    opticStats("#stat_stacks_in_33287").data("percent", maxValuePercentstacks_in_33287*100);
3237  } else {
3238    var maxValuePercentstacks_in_33287 = (countNumberstacks_in_33287/36);
3239    if (36 == 0) {
3240      if(countNumberstacks_in_33287 < 0) {
3241        maxValuePercentstacks_in_33287 = 1;
3242      } else {
3243        maxValuePercentstacks_in_33287 = (0-countNumberstacks_in_33287)/0;
3244      }
3245    }
3246    speedA = (2000/speed)*maxValuePercentstacks_in_33287;
3247    opticStats("#stat_stacks_in_33287").data("percent", maxValuePercentstacks_in_33287*100);
3248  }
3249  opticStats('#stat_stacks_in_33287').attr("data-animationstep", speedA);
3250  opticStats('#stat_stacks_in_33287').circliful();
3251  opticStats('#stat_stacks_in_33287').waypoint(function(direction){
3252
3253  //
3254//  opticStats('#stacks_in_33287 .counter').counterUp({
3255//    delay: 10,
3256//    time: speed
3257//  });
3258
3259    var options = {
3260      //
3261      useGrouping : false,
3262      //
3263      //
3264      separator : ',',
3265      decimal : '.',
3266      //
3267      //
3268      //
3269      useEasing : false
3270    };
3271    opticStats('#stacks_in_33287 .counter').attr("id", "count_stacks_in_33287");
3272    var count = new CountUp('count_stacks_in_33287', 0, countNumberstacks_in_33287, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33287), options);//(1.75/speedA)*(maxValuePercentstacks_in_33287)
3273    count.start();
3274    //
3275    //
3276    opticStats('#stat_stacks_in_33287 .circle-text').append("");
3277    opticStats('#stat_stacks_in_33287 .circle-text-half').append("");
3278    //
3279    //
3280    //
3281    //
3282    opticStats('#stat_stacks_in_33287 span > .osIcon').wrap("<div class='os-icon-wrap' />")
3283    opticStats('#stat_stacks_in_33287 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33287 .centerMe > div > span:first-child'));
3284    //
3285    //
3286    scale();
3287    this.destroy();
3288  }, { offset: '100%' });
3289
3290
3291});
3292
3293opticStats( window ).resize(function() {
3294  scale();
3295});
3296function scale() {
3297  var width = 330,
3298      currentWidth = opticStats('#stat_stacks_in_33287').parent().outerWidth();
3299  if(currentWidth < width) {
3300    var scale = currentWidth/width;
3301    opticStats('#stat_stacks_in_33287').css({
3302      "transform" : "scale("+scale+")",
3303      "transform-origin" : "0px",
3304      "-o-transform" : "scale("+scale+")",
3305      "-o-transform-origin" : "0px"
3306    });
3307  } else {
3308    opticStats('#stat_stacks_in_33287').css({
3309      "transform" : "scale(1)",
3310      "-o-transform" : "scale(1)"
3311    });
3312  }
3313}
3314
3315return stack;})(stacks.stacks_in_33287);
3316stacks.stacks_in_33288 = {};
3317stacks.stacks_in_33288 = (function(stack) {
3318
3319return stack;})(stacks.stacks_in_33288);
3320stacks.stacks_in_33294 = {};
3321stacks.stacks_in_33294 = (function(stack) {
3322var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
3323/*
3324jquery-plugin-circliful
3325+The MIT License (MIT)
3326+
3327+Copyright (c) 2014 Patric Gutersohn
3328+
3329+Permission is hereby granted, free of charge, to any person obtaining a copy of
3330+this software and associated documentation files (the "Software"), to deal in
3331+the Software without restriction, including without limitation the rights to
3332+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
3333+the Software, and to permit persons to whom the Software is furnished to do so,
3334+subject to the following conditions:
3335+
3336+The above copyright notice and this permission notice shall be included in all
3337+copies or substantial portions of the Software.
3338+
3339+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3340+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
3341+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
3342+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
3343+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
3344+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
3345*/
3346"use strict";
3347
3348(function (opticStats) {
3349
3350  opticStats.fn.circliful = function (options, callback) {
3351
3352    var settings = opticStats.extend({
3353      // These are the defaults.
3354      startdegree: 0,
3355      fgcolor: "#556b2f",
3356      bgcolor: "#eee",
3357      fill: false,
3358      width: 15,
3359      dimension: 200,
3360      fontsize: 15,
3361      percent: 50,
3362      animationstep: 1.0,
3363      iconsize: '20px',
3364      iconcolor: '#999',
3365      border: 'default',
3366      complete: null,
3367      bordersize: 10
3368    }, options);
3369
3370    return this.each(function () {
3371
3372      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
3373
3374      var customSettingsObj = {};
3375      var icon = '';
3376      var percent;
3377      var endPercent = 0;
3378      var obj = opticStats(this);
3379      var fill = false;
3380      var text, info;
3381
3382      obj.addClass('circliful');
3383
3384      checkDataAttributes(obj);
3385
3386      if (obj.data('text') != undefined) {
3387
3388        //remove non number characters
3389
3390        text = obj.data('text');
3391        text = text.toString();
3392        text = text.replace(/[^0-9.,]/g, '');
3393        text = "<span class='counter'>" + text + "</span>";
3394
3395        if (obj.data('icon') != undefined) {
3396          icon = opticStats('<i></i>')
3397            .addClass('osIcon fa ' + opticStats(this).data('icon'))
3398            .css({
3399            'color': customSettingsObj.iconcolor,
3400            'font-size': customSettingsObj.iconsize,
3401            'line-height': customSettingsObj.iconsize + "px"
3402          });
3403        }
3404        if (obj.data('icon-custom') != undefined) {
3405          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
3406            .addClass('osIcon ')
3407            .css({
3408            'width': customSettingsObj.iconsize,
3409            'height': customSettingsObj.iconsize
3410          });
3411        }
3412
3413        if (obj.data('type') != undefined) {
3414          type = opticStats(this).data('type');
3415
3416          if (type == 'half') {
3417            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
3418          } else {
3419            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
3420          }
3421        } else {
3422          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
3423        }
3424      }
3425
3426      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
3427        var total = opticStats(this).data("total") / 100;
3428
3429        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
3430        endPercent = (opticStats(this).data("part") / total).toFixed(3);
3431      } else {
3432        if (opticStats(this).data("percent") != undefined) {
3433          percent = opticStats(this).data("percent") / 100;
3434          endPercent = opticStats(this).data("percent");
3435        } else {
3436          percent = settings.percent / 100;
3437        }
3438      }
3439
3440      if (opticStats(this).data('info') != undefined) {
3441        info = opticStats(this).data('info');
3442
3443        if (opticStats(this).data('type') != undefined) {
3444          type = opticStats(this).data('type');
3445
3446          if (type == 'half') {
3447            addInfoText(obj, 0.9);
3448          } else {
3449            addInfoText(obj, 1.25);
3450          }
3451        } else {
3452          addInfoText(obj, 1.25);
3453        }
3454      }
3455
3456      opticStats(this).width(customSettingsObj.dimension + 'px');
3457      if (type == 'line' || type == 'vert-line') {
3458        opticStats(this).height(opticStats(this).data('height') + 'px');
3459      } else {
3460        opticStats(this).height(customSettingsObj.dimension + 'px');
3461      }
3462
3463
3464      var sizeX = customSettingsObj.dimension,
3465          sizeY = customSettingsObj.dimension;
3466      if (type == 'line' || type == 'vert-line') {
3467        sizeY = opticStats(this).data('height');
3468      }
3469      var canvas = opticStats('<canvas></canvas>').attr({
3470        width: sizeX,
3471        height: sizeY
3472      }).appendTo(opticStats(this)).get(0);
3473      var context = canvas.getContext('2d');
3474
3475      var dpr = window.devicePixelRatio;
3476      if ( dpr ) {
3477        var opticStatscanvas = opticStats(canvas);
3478        opticStatscanvas.css('width', sizeX);
3479        opticStatscanvas.css('height', sizeY);
3480        opticStatscanvas.attr('width', sizeX * dpr);
3481        opticStatscanvas.attr('height', sizeY * dpr);
3482
3483        context.scale(dpr, dpr);
3484      }
3485
3486      var container = opticStats(canvas).parent();
3487      var x = sizeX / 2;
3488      var y = sizeY / 2;
3489      var degrees = customSettingsObj.percent * 360.0;
3490      var radians = degrees * (Math.PI / 180);
3491      var radius = sizeX / 2.5;
3492      var startAngle = 2.3 * Math.PI;
3493      var endAngle = 0;
3494      var counterClockwise = false;
3495      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
3496      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
3497      var circ = Math.PI * 2;
3498      var quart = Math.PI / 2;
3499      var type = '';
3500      var fireCallback = true;
3501      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
3502
3503      if (opticStats(this).data('type') != undefined) {
3504        type = opticStats(this).data('type');
3505        if (type == 'half') {
3506          startAngle = 2.0 * Math.PI;
3507          endAngle = 3.14;
3508          circ = Math.PI;
3509          quart = Math.PI / 0.996;
3510        } else if (type == 'angle') {
3511          startAngle = 2.25 * Math.PI;
3512          endAngle = 2.4;
3513          circ = 1.53 + Math.PI;
3514          quart = 0.73 + Math.PI / 0.996;
3515        }
3516      }
3517
3518      /**
3519             * adds text to circle
3520             *
3521             * @param obj
3522             * @param cssClass
3523             * @param lineHeight
3524             */
3525      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
3526      function addCircleText(obj, cssClass, lineHeight) {
3527        opticStats("<span></span>")
3528          .appendTo(obj)
3529          .addClass(cssClass)
3530          .html(text)
3531          .prepend(icon)
3532          .css({
3533          //'line-height': lineHeight + 'px',
3534          'font-size': customSettingsObj.fontsize + 'px',
3535          'line-height': customSettingsObj.fontsize + 'px'
3536        });
3537      }
3538
3539      /**
3540             * adds info text to circle
3541             *
3542             * @param obj
3543             * @param factor
3544             */
3545      function addInfoText(obj, factor) {
3546        opticStats('<span></span>')
3547          .appendTo(obj)
3548          .addClass('circle-info-half')
3549        //.css(
3550        //'line-height', (customSettingsObj.dimension * factor) + 'px'
3551        //)
3552          .text(info);
3553      }
3554
3555      /**
3556             * checks which data attributes are defined
3557             * @param obj
3558             */
3559      function checkDataAttributes(obj) {
3560        opticStats.each(customSettings, function (index, attribute) {
3561          if (obj.data(attribute) != undefined) {
3562            customSettingsObj[attribute] = obj.data(attribute);
3563          } else {
3564            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
3565          }
3566
3567          if (attribute == 'fill' && obj.data('fill') != undefined) {
3568            fill = true;
3569          }
3570        });
3571      }
3572
3573      //Animation Variables
3574      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
3575      // ---------------------- //
3576      // Animation Functions
3577      // ---------------------- //
3578      function blend(inColor,outColor,current){
3579        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
3580            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
3581            r,g,b,a,cur;
3582        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
3583        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
3584        if(current < .5 ) {
3585          cur = current*2;
3586          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
3587          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
3588          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
3589        } else {
3590          cur = (current-.5)*2;
3591          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
3592          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
3593          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
3594        }
3595        var a = inColors[3]+((outColors[3] - inColors[3])*current);
3596        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
3597      }
3598      if (type == 'line' || type == 'vert-line') {
3599        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
3600      }
3601      var increaseInc = function(inc, current) {
3602        if (current >= 1) {
3603          //          slowTheInc += 0.00002;
3604          //          slowTheInc = Math.min(slowTheInc, 0.005);
3605          //          inc = inc + (0.005-slowTheInc);
3606        } else {
3607          inc += 0.005;
3608        }
3609        return inc;
3610      }
3611      var moveColors = function(value, inc) {
3612        var pos = value+inc;
3613        pos = pos.toString();
3614        pos = pos.split(".").pop();
3615        pos = parseFloat("."+pos);
3616        return pos;
3617      }
3618      var createGrad = function(inc,sizeX, sizeY) {
3619        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
3620        grd.addColorStop(moveColors(0, inc),"#FF0000");
3621        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
3622        grd.addColorStop(moveColors(.2, inc),"#00FF00");
3623        grd.addColorStop(moveColors(.3, inc),"#0000FF");
3624        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
3625        grd.addColorStop(moveColors(.5, inc),"#FF0000");
3626        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
3627        grd.addColorStop(moveColors(.7, inc),"#00FF00");
3628        grd.addColorStop(moveColors(.8, inc),"#0000FF");
3629        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
3630        grd.addColorStop(moveColors(1, inc),"#FF0000");
3631        return grd;
3632      }
3633      var shadowGlow = function() {
3634        context.shadowColor = customSettingsObj.fgcolor;
3635        context.shadowOffsetX = 0;
3636        context.shadowOffsetY = 0;
3637        context.shadowBlur = 10;
3638      }
3639      var drawBorder = function() {
3640        context.lineWidth = customSettingsObj.bordersize + 1;
3641        context.strokeStyle = customSettingsObj.bgcolor;
3642        context.stroke();
3643        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
3644          //
3645        } else {
3646          context.fillStyle = customSettingsObj.fill;
3647          context.fill();
3648        }
3649        context.beginPath();
3650        context.save();
3651      }
3652      var fillAnimation = function(animationType, current) {
3653        if(animationType == 1){
3654          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
3655          context.stroke();
3656        } else if(animationType == 2){
3657          context.strokeStyle = customSettingsObj.fgcolor;
3658          if (type == 'line') {
3659            var grd=context.createLinearGradient(sizeX,0,0,0);
3660            grd.addColorStop(0,"white");
3661            grd.addColorStop(1,customSettingsObj.fgcolor);
3662            context.strokeStyle = grd;
3663            shadowGlow();
3664          } else if (type == 'vert-line') {
3665            var grd=context.createLinearGradient(0,0,0,sizeY);
3666            grd.addColorStop(0,"white");
3667            grd.addColorStop(1,customSettingsObj.fgcolor);
3668            context.strokeStyle = grd;
3669            shadowGlow();
3670          } else {
3671            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
3672            grd.addColorStop(0, customSettingsObj.fgcolor);
3673            grd.addColorStop(0.5, 'white');
3674            grd.addColorStop(1, customSettingsObj.fgcolor);
3675            context.strokeStyle = grd;
3676            shadowGlow();
3677          }
3678          context.stroke();
3679          context.restore();
3680        } else if(animationType == 3){
3681          if (type == 'line') {
3682            var grd = createGrad(inc,sizeX,sizeY);
3683            inc = increaseInc(inc,current);
3684            context.strokeStyle = grd;
3685          } else if (type == 'vert-line') {
3686            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
3687            grd.addColorStop(moveColors(0, inc),"#FF0000");
3688            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
3689            grd.addColorStop(moveColors(.2, inc),"#00FF00");
3690            grd.addColorStop(moveColors(.3, inc),"#0000FF");
3691            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
3692            grd.addColorStop(moveColors(.5, inc),"#FF0000");
3693            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
3694            grd.addColorStop(moveColors(.7, inc),"#00FF00");
3695            grd.addColorStop(moveColors(.8, inc),"#0000FF");
3696            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
3697            grd.addColorStop(moveColors(1, inc),"#FF0000");
3698            inc = increaseInc(inc,current);
3699            context.strokeStyle = grd;
3700          } else {
3701            var grd = createGrad(inc,sizeX,sizeY);
3702            inc = increaseInc(inc,current);
3703            context.strokeStyle = grd;
3704          }
3705          context.stroke();
3706          context.restore();
3707        } else {
3708          context.strokeStyle = customSettingsObj.fgcolor;
3709          context.stroke();
3710        }
3711      }
3712      // ---------------------- //
3713      // Animation
3714      // ---------------------- //
3715      function animate(current) {
3716        //Clear Canvas for next frame
3717        context.clearRect(0, 0, canvas.width, canvas.height);
3718        //Draw Background
3719        if (type == 'line' || type == 'vert-line') {
3720          context.rect(10, 10, sizeX-20, sizeY-20);
3721        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
3722          context.beginPath();
3723          context.arc(x, y, radius, endAngle, startAngle, false);
3724        }
3725        context.fillStyle = customSettingsObj.fill;
3726        context.fill();
3727        if (type == 'line') {
3728          context.beginPath();
3729          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
3730          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
3731          drawBorder();
3732          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
3733          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
3734          fillAnimation(animationType,current);
3735        } else if (type == 'vert-line'){
3736          context.beginPath();
3737          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
3738          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
3739          drawBorder();
3740          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
3741          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
3742          fillAnimation(animationType,current);
3743        } else if (type == 'full' || type=='half') {
3744          drawBorder();
3745          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
3746          fillAnimation(animationType,current);
3747        } else if (type == 'grow-circle') {
3748          drawBorder();
3749          var fillRadius = sizeX/2.5*Math.min(current,1);
3750          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
3751          if(animationType == 1){
3752            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
3753            context.fill();
3754          } else if(animationType == 2){
3755            var grd=context.createLinearGradient(0,0,0,sizeY);
3756            grd.addColorStop(0,"white");
3757            grd.addColorStop(1,customSettingsObj.fgcolor);
3758            shadowGlow();
3759            context.fillStyle = grd;
3760            context.fill();
3761          } else if(animationType == 3){
3762            var grd = createGrad(inc,sizeX,sizeY);
3763            inc = increaseInc(inc,current);
3764            context.fillStyle = grd;
3765            context.fill();
3766          } else {
3767            context.fillStyle = customSettingsObj.fgcolor;
3768            context.fill();
3769          }
3770          context.restore();
3771        } else if (type == 'fill-circle') {
3772          drawBorder();
3773          var fillRadius = sizeX/2.5,
3774              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
3775          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
3776          if(animationType == 1){
3777            context.clip();
3778            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
3779            context.fillRect(0, fillLine, sizeX, sizeY);
3780          } else if(animationType == 2){
3781            var grd=context.createLinearGradient(0,0,0,sizeY);
3782            grd.addColorStop(0,"white");
3783            grd.addColorStop(1,customSettingsObj.fgcolor);
3784            shadowGlow();
3785            context.clip();
3786            context.fillStyle = grd;
3787            context.fillRect(0, fillLine, sizeX, sizeY);
3788
3789          } else if(animationType == 3){
3790            context.clip();
3791            var grd = createGrad(inc,sizeX, sizeY);
3792            inc = increaseInc(inc,current);
3793            context.fillStyle = grd;
3794            context.fillRect(0, fillLine, sizeX, sizeY);
3795          } else {
3796            context.clip();
3797            context.fillStyle = customSettingsObj.fgcolor;
3798            context.fillRect(0, fillLine, sizeX, sizeY);
3799          }
3800          context.restore();
3801        } else if (type == 'fill-circle-wave') {
3802          drawBorder();
3803          var fillRadius = sizeX/2.5,
3804              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
3805          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
3806          var ypos=fillLine, xpos=0;
3807          counter += .1;
3808          counterLoop = counter;
3809          var increase = 2*Math.PI / 12;
3810          context.clip();
3811          context.beginPath();
3812          context.moveTo(sizeX,sizeY);
3813          context.lineTo(0,sizeY);
3814          context.lineTo(0,ypos);
3815          if (curPerc > endPercent) {
3816            calm-=.01;
3817            if(calm<0) calm=0;
3818          }
3819          for(i=0; i<=sizeX; i+=10){
3820            xpos = i;
3821            ypos =  ypos - Math.sin(counterLoop) * calm;
3822            counterLoop += increase;
3823            context.lineTo(xpos,ypos);
3824          }
3825          context.lineTo(sizeX,sizeY);
3826          context.closePath();
3827          if(animationType == 1){
3828            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
3829            context.fill();
3830          } else if(animationType == 2){
3831            var grd=context.createLinearGradient(0,0,0,sizeY);
3832            grd.addColorStop(0,"white");
3833            grd.addColorStop(1,customSettingsObj.fgcolor);
3834            shadowGlow();
3835            context.clip();
3836            context.fillStyle = grd;
3837            context.fill();
3838          } else if(animationType == 3){
3839            context.clip();
3840            var grd = createGrad(inc,sizeX,sizeY);
3841            inc = increaseInc(inc,current);
3842            context.fillStyle = grd;
3843            context.fill();
3844          } else {
3845            context.clip();
3846            context.fillStyle = customSettingsObj.fgcolor;
3847            context.fill();
3848          }
3849          context.restore();
3850        }
3851
3852        if (curPerc < endPercent) {
3853          curPerc += curStep;
3854          requestAnimationFrame(function () {
3855            context.strokeStyle = customSettingsObj.fgcolor;
3856            animate(Math.min(curPerc, endPercent) / 100);
3857          }, obj);
3858        } else if(finishFrames < 500) {
3859          curPerc += curStep;
3860          finishFrames+=1;
3861          requestAnimationFrame(function () {
3862            context.strokeStyle = customSettingsObj.fgcolor;
3863            animate(Math.min(curPerc, endPercent) / 100);
3864          }, obj);
3865        }
3866
3867        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
3868          if (opticStats.isFunction(options.complete)) {
3869            options.complete();
3870
3871            fireCallback = false;
3872          }
3873        }
3874      }
3875      obj.waypoint(function(direction){
3876        animate(curPerc / 100);
3877        this.destroy();
3878      }, { offset: '100%' });
3879    });
3880  };
3881}(opticStats));
3882/*
3883 The MIT License (MIT)
3884 CountUp
3885+Copyright (c) 2014-2015 Jamie Perkins
3886 Permission is hereby granted, free of charge, to any person obtaining a copy of
3887 this software and associated documentation files (the "Software"), to deal in
3888*/
3889!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
3890/*!
3891Waypoints - 4.0.0
3892Copyright © 2011-2015 Caleb Troughton
3893Licensed under the MIT license.
3894https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
3895*/
3896!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");
vendor: 6,526 bytes, line 3896
3896this.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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
3896ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
3897
3898opticStats( document ).ready(function() {
3899  var speed =  3000,
3900      countNumberstacks_in_33294 = "1000",
3901      decimalNumber = '0',
3902      decimalNumber = decimalNumber.replace(/\D/g,''),
3903      decimalLength = decimalNumber.length,
3904      maxValuePercentstacks_in_33294 = (countNumberstacks_in_33294/1000),
3905      speedA = (2000/speed)*maxValuePercentstacks_in_33294;
3906  if (1000 == 0) {
3907    if(countNumberstacks_in_33294 < 0) {
3908      maxValuePercentstacks_in_33294 = 1;
3909    } else {
3910      maxValuePercentstacks_in_33294 = (0-countNumberstacks_in_33294)/0;
3911    }
3912  }
3913  if('False' == 'False' ) {
3914     decimalLength = 0;
3915  } else {
3916    countNumberstacks_in_33294 = countNumberstacks_in_33294.replace(/\D/g,'');
3917    countNumberstacks_in_33294 = countNumberstacks_in_33294+"."+decimalNumber;
3918  }
3919  if('False' == 'True' ) {
3920    var items = readData_data(opticStats("#data"));
3921    countNumberstacks_in_33294 = items['data-A1'];
3922    if(countNumberstacks_in_33294 ==  null) {
3923      countNumberstacks_in_33294 = '0';
3924    }
3925    opticStats("#stat_stacks_in_33294").data("percent", maxValuePercentstacks_in_33294*100);
3926    //
3927    //
3928    if(countNumberstacks_in_33294.indexOf(".") !== -1) {
3929      decimalNumber = countNumberstacks_in_33294.substr(countNumberstacks_in_33294.indexOf(".") + 1);
3930      decimalNumber = decimalNumber.replace(/\D/g,'');
3931      decimalLength = decimalNumber.length;
3932      countNumberstacks_in_33294 = countNumberstacks_in_33294.substr(0, countNumberstacks_in_33294.indexOf('.'));
3933    }
3934    //
3935    //
3936    countNumberstacks_in_33294 = countNumberstacks_in_33294.replace(/[^0-9\-]/g,'');
3937    countNumberstacks_in_33294 = countNumberstacks_in_33294+"."+decimalNumber;
3938    maxValuePercentstacks_in_33294 = (countNumberstacks_in_33294/1000);
3939    if (1000 == 0) {
3940      if(countNumberstacks_in_33294 < 0) {
3941        maxValuePercentstacks_in_33294 = 1;
3942      } else {
3943        maxValuePercentstacks_in_33294 = (0-countNumberstacks_in_33294)/0;
3944      }
3945    }
3946    speedA = (2000/speed)*maxValuePercentstacks_in_33294;
3947    opticStats("#stat_stacks_in_33294").data("percent", maxValuePercentstacks_in_33294*100);
3948  } else {
3949    var maxValuePercentstacks_in_33294 = (countNumberstacks_in_33294/1000);
3950    if (1000 == 0) {
3951      if(countNumberstacks_in_33294 < 0) {
3952        maxValuePercentstacks_in_33294 = 1;
3953      } else {
3954        maxValuePercentstacks_in_33294 = (0-countNumberstacks_in_33294)/0;
3955      }
3956    }
3957    speedA = (2000/speed)*maxValuePercentstacks_in_33294;
3958    opticStats("#stat_stacks_in_33294").data("percent", maxValuePercentstacks_in_33294*100);
3959  }
3960  opticStats('#stat_stacks_in_33294').attr("data-animationstep", speedA);
3961  opticStats('#stat_stacks_in_33294').circliful();
3962  opticStats('#stat_stacks_in_33294').waypoint(function(direction){
3963
3964  //
3965//  opticStats('#stacks_in_33294 .counter').counterUp({
3966//    delay: 10,
3967//    time: speed
3968//  });
3969
3970    var options = {
3971      //
3972      useGrouping : false,
3973      //
3974      //
3975      separator : ',',
3976      decimal : '.',
3977      //
3978      //
3979      //
3980      useEasing : false
3981    };
3982    opticStats('#stacks_in_33294 .counter').attr("id", "count_stacks_in_33294");
3983    var count = new CountUp('count_stacks_in_33294', 0, countNumberstacks_in_33294, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33294), options);//(1.75/speedA)*(maxValuePercentstacks_in_33294)
3984    count.start();
3985    //
3986    //
3987    opticStats('#stat_stacks_in_33294 .circle-text').append("+");
3988    opticStats('#stat_stacks_in_33294 .circle-text-half').append("+");
3989    //
3990    //
3991    //
3992    //
3993    opticStats('#stat_stacks_in_33294 span > .osIcon').wrap("<div class='os-icon-wrap' />")
3994    opticStats('#stat_stacks_in_33294 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33294 .centerMe > div > span:first-child'));
3995    //
3996    //
3997    scale();
3998    this.destroy();
3999  }, { offset: '100%' });
4000
4001
4002});
4003
4004opticStats( window ).resize(function() {
4005  scale();
4006});
4007function scale() {
4008  var width = 330,
4009      currentWidth = opticStats('#stat_stacks_in_33294').parent().outerWidth();
4010  if(currentWidth < width) {
4011    var scale = currentWidth/width;
4012    opticStats('#stat_stacks_in_33294').css({
4013      "transform" : "scale("+scale+")",
4014      "transform-origin" : "0px",
4015      "-o-transform" : "scale("+scale+")",
4016      "-o-transform-origin" : "0px"
4017    });
4018  } else {
4019    opticStats('#stat_stacks_in_33294').css({
4020      "transform" : "scale(1)",
4021      "-o-transform" : "scale(1)"
4022    });
4023  }
4024}
4025
4026return stack;})(stacks.stacks_in_33294);
4027stacks.stacks_in_33295 = {};
4028stacks.stacks_in_33295 = (function(stack) {
4029
4030return stack;})(stacks.stacks_in_33295);
4031stacks.stacks_in_33301_2 = {};
4032stacks.stacks_in_33301_2 = (function(stack) {
4033var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
4034/*
4035jquery-plugin-circliful
4036+The MIT License (MIT)
4037+
4038+Copyright (c) 2014 Patric Gutersohn
4039+
4040+Permission is hereby granted, free of charge, to any person obtaining a copy of
4041+this software and associated documentation files (the "Software"), to deal in
4042+the Software without restriction, including without limitation the rights to
4043+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
4044+the Software, and to permit persons to whom the Software is furnished to do so,
4045+subject to the following conditions:
4046+
4047+The above copyright notice and this permission notice shall be included in all
4048+copies or substantial portions of the Software.
4049+
4050+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4051+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
4052+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
4053+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
4054+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
4055+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4056*/
4057"use strict";
4058
4059(function (opticStats) {
4060
4061  opticStats.fn.circliful = function (options, callback) {
4062
4063    var settings = opticStats.extend({
4064      // These are the defaults.
4065      startdegree: 0,
4066      fgcolor: "#556b2f",
4067      bgcolor: "#eee",
4068      fill: false,
4069      width: 15,
4070      dimension: 200,
4071      fontsize: 15,
4072      percent: 50,
4073      animationstep: 1.0,
4074      iconsize: '20px',
4075      iconcolor: '#999',
4076      border: 'default',
4077      complete: null,
4078      bordersize: 10
4079    }, options);
4080
4081    return this.each(function () {
4082
4083      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
4084
4085      var customSettingsObj = {};
4086      var icon = '';
4087      var percent;
4088      var endPercent = 0;
4089      var obj = opticStats(this);
4090      var fill = false;
4091      var text, info;
4092
4093      obj.addClass('circliful');
4094
4095      checkDataAttributes(obj);
4096
4097      if (obj.data('text') != undefined) {
4098
4099        //remove non number characters
4100
4101        text = obj.data('text');
4102        text = text.toString();
4103        text = text.replace(/[^0-9.,]/g, '');
4104        text = "<span class='counter'>" + text + "</span>";
4105
4106        if (obj.data('icon') != undefined) {
4107          icon = opticStats('<i></i>')
4108            .addClass('osIcon fa ' + opticStats(this).data('icon'))
4109            .css({
4110            'color': customSettingsObj.iconcolor,
4111            'font-size': customSettingsObj.iconsize,
4112            'line-height': customSettingsObj.iconsize + "px"
4113          });
4114        }
4115        if (obj.data('icon-custom') != undefined) {
4116          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
4117            .addClass('osIcon ')
4118            .css({
4119            'width': customSettingsObj.iconsize,
4120            'height': customSettingsObj.iconsize
4121          });
4122        }
4123
4124        if (obj.data('type') != undefined) {
4125          type = opticStats(this).data('type');
4126
4127          if (type == 'half') {
4128            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
4129          } else {
4130            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
4131          }
4132        } else {
4133          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
4134        }
4135      }
4136
4137      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
4138        var total = opticStats(this).data("total") / 100;
4139
4140        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
4141        endPercent = (opticStats(this).data("part") / total).toFixed(3);
4142      } else {
4143        if (opticStats(this).data("percent") != undefined) {
4144          percent = opticStats(this).data("percent") / 100;
4145          endPercent = opticStats(this).data("percent");
4146        } else {
4147          percent = settings.percent / 100;
4148        }
4149      }
4150
4151      if (opticStats(this).data('info') != undefined) {
4152        info = opticStats(this).data('info');
4153
4154        if (opticStats(this).data('type') != undefined) {
4155          type = opticStats(this).data('type');
4156
4157          if (type == 'half') {
4158            addInfoText(obj, 0.9);
4159          } else {
4160            addInfoText(obj, 1.25);
4161          }
4162        } else {
4163          addInfoText(obj, 1.25);
4164        }
4165      }
4166
4167      opticStats(this).width(customSettingsObj.dimension + 'px');
4168      if (type == 'line' || type == 'vert-line') {
4169        opticStats(this).height(opticStats(this).data('height') + 'px');
4170      } else {
4171        opticStats(this).height(customSettingsObj.dimension + 'px');
4172      }
4173
4174
4175      var sizeX = customSettingsObj.dimension,
4176          sizeY = customSettingsObj.dimension;
4177      if (type == 'line' || type == 'vert-line') {
4178        sizeY = opticStats(this).data('height');
4179      }
4180      var canvas = opticStats('<canvas></canvas>').attr({
4181        width: sizeX,
4182        height: sizeY
4183      }).appendTo(opticStats(this)).get(0);
4184      var context = canvas.getContext('2d');
4185
4186      var dpr = window.devicePixelRatio;
4187      if ( dpr ) {
4188        var opticStatscanvas = opticStats(canvas);
4189        opticStatscanvas.css('width', sizeX);
4190        opticStatscanvas.css('height', sizeY);
4191        opticStatscanvas.attr('width', sizeX * dpr);
4192        opticStatscanvas.attr('height', sizeY * dpr);
4193
4194        context.scale(dpr, dpr);
4195      }
4196
4197      var container = opticStats(canvas).parent();
4198      var x = sizeX / 2;
4199      var y = sizeY / 2;
4200      var degrees = customSettingsObj.percent * 360.0;
4201      var radians = degrees * (Math.PI / 180);
4202      var radius = sizeX / 2.5;
4203      var startAngle = 2.3 * Math.PI;
4204      var endAngle = 0;
4205      var counterClockwise = false;
4206      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
4207      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
4208      var circ = Math.PI * 2;
4209      var quart = Math.PI / 2;
4210      var type = '';
4211      var fireCallback = true;
4212      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
4213
4214      if (opticStats(this).data('type') != undefined) {
4215        type = opticStats(this).data('type');
4216        if (type == 'half') {
4217          startAngle = 2.0 * Math.PI;
4218          endAngle = 3.14;
4219          circ = Math.PI;
4220          quart = Math.PI / 0.996;
4221        } else if (type == 'angle') {
4222          startAngle = 2.25 * Math.PI;
4223          endAngle = 2.4;
4224          circ = 1.53 + Math.PI;
4225          quart = 0.73 + Math.PI / 0.996;
4226        }
4227      }
4228
4229      /**
4230             * adds text to circle
4231             *
4232             * @param obj
4233             * @param cssClass
4234             * @param lineHeight
4235             */
4236      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
4237      function addCircleText(obj, cssClass, lineHeight) {
4238        opticStats("<span></span>")
4239          .appendTo(obj)
4240          .addClass(cssClass)
4241          .html(text)
4242          .prepend(icon)
4243          .css({
4244          //'line-height': lineHeight + 'px',
4245          'font-size': customSettingsObj.fontsize + 'px',
4246          'line-height': customSettingsObj.fontsize + 'px'
4247        });
4248      }
4249
4250      /**
4251             * adds info text to circle
4252             *
4253             * @param obj
4254             * @param factor
4255             */
4256      function addInfoText(obj, factor) {
4257        opticStats('<span></span>')
4258          .appendTo(obj)
4259          .addClass('circle-info-half')
4260        //.css(
4261        //'line-height', (customSettingsObj.dimension * factor) + 'px'
4262        //)
4263          .text(info);
4264      }
4265
4266      /**
4267             * checks which data attributes are defined
4268             * @param obj
4269             */
4270      function checkDataAttributes(obj) {
4271        opticStats.each(customSettings, function (index, attribute) {
4272          if (obj.data(attribute) != undefined) {
4273            customSettingsObj[attribute] = obj.data(attribute);
4274          } else {
4275            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
4276          }
4277
4278          if (attribute == 'fill' && obj.data('fill') != undefined) {
4279            fill = true;
4280          }
4281        });
4282      }
4283
4284      //Animation Variables
4285      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
4286      // ---------------------- //
4287      // Animation Functions
4288      // ---------------------- //
4289      function blend(inColor,outColor,current){
4290        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
4291            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
4292            r,g,b,a,cur;
4293        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
4294        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
4295        if(current < .5 ) {
4296          cur = current*2;
4297          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
4298          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
4299          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
4300        } else {
4301          cur = (current-.5)*2;
4302          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
4303          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
4304          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
4305        }
4306        var a = inColors[3]+((outColors[3] - inColors[3])*current);
4307        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
4308      }
4309      if (type == 'line' || type == 'vert-line') {
4310        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
4311      }
4312      var increaseInc = function(inc, current) {
4313        if (current >= 1) {
4314          //          slowTheInc += 0.00002;
4315          //          slowTheInc = Math.min(slowTheInc, 0.005);
4316          //          inc = inc + (0.005-slowTheInc);
4317        } else {
4318          inc += 0.005;
4319        }
4320        return inc;
4321      }
4322      var moveColors = function(value, inc) {
4323        var pos = value+inc;
4324        pos = pos.toString();
4325        pos = pos.split(".").pop();
4326        pos = parseFloat("."+pos);
4327        return pos;
4328      }
4329      var createGrad = function(inc,sizeX, sizeY) {
4330        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
4331        grd.addColorStop(moveColors(0, inc),"#FF0000");
4332        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
4333        grd.addColorStop(moveColors(.2, inc),"#00FF00");
4334        grd.addColorStop(moveColors(.3, inc),"#0000FF");
4335        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
4336        grd.addColorStop(moveColors(.5, inc),"#FF0000");
4337        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
4338        grd.addColorStop(moveColors(.7, inc),"#00FF00");
4339        grd.addColorStop(moveColors(.8, inc),"#0000FF");
4340        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
4341        grd.addColorStop(moveColors(1, inc),"#FF0000");
4342        return grd;
4343      }
4344      var shadowGlow = function() {
4345        context.shadowColor = customSettingsObj.fgcolor;
4346        context.shadowOffsetX = 0;
4347        context.shadowOffsetY = 0;
4348        context.shadowBlur = 10;
4349      }
4350      var drawBorder = function() {
4351        context.lineWidth = customSettingsObj.bordersize + 1;
4352        context.strokeStyle = customSettingsObj.bgcolor;
4353        context.stroke();
4354        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
4355          //
4356        } else {
4357          context.fillStyle = customSettingsObj.fill;
4358          context.fill();
4359        }
4360        context.beginPath();
4361        context.save();
4362      }
4363      var fillAnimation = function(animationType, current) {
4364        if(animationType == 1){
4365          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
4366          context.stroke();
4367        } else if(animationType == 2){
4368          context.strokeStyle = customSettingsObj.fgcolor;
4369          if (type == 'line') {
4370            var grd=context.createLinearGradient(sizeX,0,0,0);
4371            grd.addColorStop(0,"white");
4372            grd.addColorStop(1,customSettingsObj.fgcolor);
4373            context.strokeStyle = grd;
4374            shadowGlow();
4375          } else if (type == 'vert-line') {
4376            var grd=context.createLinearGradient(0,0,0,sizeY);
4377            grd.addColorStop(0,"white");
4378            grd.addColorStop(1,customSettingsObj.fgcolor);
4379            context.strokeStyle = grd;
4380            shadowGlow();
4381          } else {
4382            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
4383            grd.addColorStop(0, customSettingsObj.fgcolor);
4384            grd.addColorStop(0.5, 'white');
4385            grd.addColorStop(1, customSettingsObj.fgcolor);
4386            context.strokeStyle = grd;
4387            shadowGlow();
4388          }
4389          context.stroke();
4390          context.restore();
4391        } else if(animationType == 3){
4392          if (type == 'line') {
4393            var grd = createGrad(inc,sizeX,sizeY);
4394            inc = increaseInc(inc,current);
4395            context.strokeStyle = grd;
4396          } else if (type == 'vert-line') {
4397            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
4398            grd.addColorStop(moveColors(0, inc),"#FF0000");
4399            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
4400            grd.addColorStop(moveColors(.2, inc),"#00FF00");
4401            grd.addColorStop(moveColors(.3, inc),"#0000FF");
4402            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
4403            grd.addColorStop(moveColors(.5, inc),"#FF0000");
4404            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
4405            grd.addColorStop(moveColors(.7, inc),"#00FF00");
4406            grd.addColorStop(moveColors(.8, inc),"#0000FF");
4407            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
4408            grd.addColorStop(moveColors(1, inc),"#FF0000");
4409            inc = increaseInc(inc,current);
4410            context.strokeStyle = grd;
4411          } else {
4412            var grd = createGrad(inc,sizeX,sizeY);
4413            inc = increaseInc(inc,current);
4414            context.strokeStyle = grd;
4415          }
4416          context.stroke();
4417          context.restore();
4418        } else {
4419          context.strokeStyle = customSettingsObj.fgcolor;
4420          context.stroke();
4421        }
4422      }
4423      // ---------------------- //
4424      // Animation
4425      // ---------------------- //
4426      function animate(current) {
4427        //Clear Canvas for next frame
4428        context.clearRect(0, 0, canvas.width, canvas.height);
4429        //Draw Background
4430        if (type == 'line' || type == 'vert-line') {
4431          context.rect(10, 10, sizeX-20, sizeY-20);
4432        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
4433          context.beginPath();
4434          context.arc(x, y, radius, endAngle, startAngle, false);
4435        }
4436        context.fillStyle = customSettingsObj.fill;
4437        context.fill();
4438        if (type == 'line') {
4439          context.beginPath();
4440          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
4441          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
4442          drawBorder();
4443          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
4444          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
4445          fillAnimation(animationType,current);
4446        } else if (type == 'vert-line'){
4447          context.beginPath();
4448          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
4449          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
4450          drawBorder();
4451          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
4452          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
4453          fillAnimation(animationType,current);
4454        } else if (type == 'full' || type=='half') {
4455          drawBorder();
4456          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
4457          fillAnimation(animationType,current);
4458        } else if (type == 'grow-circle') {
4459          drawBorder();
4460          var fillRadius = sizeX/2.5*Math.min(current,1);
4461          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
4462          if(animationType == 1){
4463            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
4464            context.fill();
4465          } else if(animationType == 2){
4466            var grd=context.createLinearGradient(0,0,0,sizeY);
4467            grd.addColorStop(0,"white");
4468            grd.addColorStop(1,customSettingsObj.fgcolor);
4469            shadowGlow();
4470            context.fillStyle = grd;
4471            context.fill();
4472          } else if(animationType == 3){
4473            var grd = createGrad(inc,sizeX,sizeY);
4474            inc = increaseInc(inc,current);
4475            context.fillStyle = grd;
4476            context.fill();
4477          } else {
4478            context.fillStyle = customSettingsObj.fgcolor;
4479            context.fill();
4480          }
4481          context.restore();
4482        } else if (type == 'fill-circle') {
4483          drawBorder();
4484          var fillRadius = sizeX/2.5,
4485              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
4486          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
4487          if(animationType == 1){
4488            context.clip();
4489            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
4490            context.fillRect(0, fillLine, sizeX, sizeY);
4491          } else if(animationType == 2){
4492            var grd=context.createLinearGradient(0,0,0,sizeY);
4493            grd.addColorStop(0,"white");
4494            grd.addColorStop(1,customSettingsObj.fgcolor);
4495            shadowGlow();
4496            context.clip();
4497            context.fillStyle = grd;
4498            context.fillRect(0, fillLine, sizeX, sizeY);
4499
4500          } else if(animationType == 3){
4501            context.clip();
4502            var grd = createGrad(inc,sizeX, sizeY);
4503            inc = increaseInc(inc,current);
4504            context.fillStyle = grd;
4505            context.fillRect(0, fillLine, sizeX, sizeY);
4506          } else {
4507            context.clip();
4508            context.fillStyle = customSettingsObj.fgcolor;
4509            context.fillRect(0, fillLine, sizeX, sizeY);
4510          }
4511          context.restore();
4512        } else if (type == 'fill-circle-wave') {
4513          drawBorder();
4514          var fillRadius = sizeX/2.5,
4515              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
4516          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
4517          var ypos=fillLine, xpos=0;
4518          counter += .1;
4519          counterLoop = counter;
4520          var increase = 2*Math.PI / 12;
4521          context.clip();
4522          context.beginPath();
4523          context.moveTo(sizeX,sizeY);
4524          context.lineTo(0,sizeY);
4525          context.lineTo(0,ypos);
4526          if (curPerc > endPercent) {
4527            calm-=.01;
4528            if(calm<0) calm=0;
4529          }
4530          for(i=0; i<=sizeX; i+=10){
4531            xpos = i;
4532            ypos =  ypos - Math.sin(counterLoop) * calm;
4533            counterLoop += increase;
4534            context.lineTo(xpos,ypos);
4535          }
4536          context.lineTo(sizeX,sizeY);
4537          context.closePath();
4538          if(animationType == 1){
4539            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
4540            context.fill();
4541          } else if(animationType == 2){
4542            var grd=context.createLinearGradient(0,0,0,sizeY);
4543            grd.addColorStop(0,"white");
4544            grd.addColorStop(1,customSettingsObj.fgcolor);
4545            shadowGlow();
4546            context.clip();
4547            context.fillStyle = grd;
4548            context.fill();
4549          } else if(animationType == 3){
4550            context.clip();
4551            var grd = createGrad(inc,sizeX,sizeY);
4552            inc = increaseInc(inc,current);
4553            context.fillStyle = grd;
4554            context.fill();
4555          } else {
4556            context.clip();
4557            context.fillStyle = customSettingsObj.fgcolor;
4558            context.fill();
4559          }
4560          context.restore();
4561        }
4562
4563        if (curPerc < endPercent) {
4564          curPerc += curStep;
4565          requestAnimationFrame(function () {
4566            context.strokeStyle = customSettingsObj.fgcolor;
4567            animate(Math.min(curPerc, endPercent) / 100);
4568          }, obj);
4569        } else if(finishFrames < 500) {
4570          curPerc += curStep;
4571          finishFrames+=1;
4572          requestAnimationFrame(function () {
4573            context.strokeStyle = customSettingsObj.fgcolor;
4574            animate(Math.min(curPerc, endPercent) / 100);
4575          }, obj);
4576        }
4577
4578        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
4579          if (opticStats.isFunction(options.complete)) {
4580            options.complete();
4581
4582            fireCallback = false;
4583          }
4584        }
4585      }
4586      obj.waypoint(function(direction){
4587        animate(curPerc / 100);
4588        this.destroy();
4589      }, { offset: '100%' });
4590    });
4591  };
4592}(opticStats));
4593/*
4594 The MIT License (MIT)
4595 CountUp
4596+Copyright (c) 2014-2015 Jamie Perkins
4597 Permission is hereby granted, free of charge, to any person obtaining a copy of
4598 this software and associated documentation files (the "Software"), to deal in
4599*/
4600!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
4601/*!
4602Waypoints - 4.0.0
4603Copyright © 2011-2015 Caleb Troughton
4604Licensed under the MIT license.
4605https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
4606*/
4607!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");
vendor: 6,526 bytes, line 4607
4607this.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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
4607ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
4608
4609opticStats( document ).ready(function() {
4610  var speed =  3000,
4611      countNumberstacks_in_33301_2 = "1",
4612      decimalNumber = '90',
4613      decimalNumber = decimalNumber.replace(/\D/g,''),
4614      decimalLength = decimalNumber.length,
4615      maxValuePercentstacks_in_33301_2 = (countNumberstacks_in_33301_2/1),
4616      speedA = (2000/speed)*maxValuePercentstacks_in_33301_2;
4617  if (1 == 0) {
4618    if(countNumberstacks_in_33301_2 < 0) {
4619      maxValuePercentstacks_in_33301_2 = 1;
4620    } else {
4621      maxValuePercentstacks_in_33301_2 = (0-countNumberstacks_in_33301_2)/0;
4622    }
4623  }
4624  if('True' == 'False' ) {
4625     decimalLength = 0;
4626  } else {
4627    countNumberstacks_in_33301_2 = countNumberstacks_in_33301_2.replace(/\D/g,'');
4628    countNumberstacks_in_33301_2 = countNumberstacks_in_33301_2+"."+decimalNumber;
4629  }
4630  if('False' == 'True' ) {
4631    var items = readData_data(opticStats("#data"));
4632    countNumberstacks_in_33301_2 = items['data-A1'];
4633    if(countNumberstacks_in_33301_2 ==  null) {
4634      countNumberstacks_in_33301_2 = '0';
4635    }
4636    opticStats("#stat_stacks_in_33301_2").data("percent", maxValuePercentstacks_in_33301_2*100);
4637    //
4638    //
4639    if(countNumberstacks_in_33301_2.indexOf(".") !== -1) {
4640      decimalNumber = countNumberstacks_in_33301_2.substr(countNumberstacks_in_33301_2.indexOf(".") + 1);
4641      decimalNumber = decimalNumber.replace(/\D/g,'');
4642      decimalLength = decimalNumber.length;
4643      countNumberstacks_in_33301_2 = countNumberstacks_in_33301_2.substr(0, countNumberstacks_in_33301_2.indexOf('.'));
4644    }
4645    //
4646    //
4647    countNumberstacks_in_33301_2 = countNumberstacks_in_33301_2.replace(/[^0-9\-]/g,'');
4648    countNumberstacks_in_33301_2 = countNumberstacks_in_33301_2+"."+decimalNumber;
4649    maxValuePercentstacks_in_33301_2 = (countNumberstacks_in_33301_2/1);
4650    if (1 == 0) {
4651      if(countNumberstacks_in_33301_2 < 0) {
4652        maxValuePercentstacks_in_33301_2 = 1;
4653      } else {
4654        maxValuePercentstacks_in_33301_2 = (0-countNumberstacks_in_33301_2)/0;
4655      }
4656    }
4657    speedA = (2000/speed)*maxValuePercentstacks_in_33301_2;
4658    opticStats("#stat_stacks_in_33301_2").data("percent", maxValuePercentstacks_in_33301_2*100);
4659  } else {
4660    var maxValuePercentstacks_in_33301_2 = (countNumberstacks_in_33301_2/1);
4661    if (1 == 0) {
4662      if(countNumberstacks_in_33301_2 < 0) {
4663        maxValuePercentstacks_in_33301_2 = 1;
4664      } else {
4665        maxValuePercentstacks_in_33301_2 = (0-countNumberstacks_in_33301_2)/0;
4666      }
4667    }
4668    speedA = (2000/speed)*maxValuePercentstacks_in_33301_2;
4669    opticStats("#stat_stacks_in_33301_2").data("percent", maxValuePercentstacks_in_33301_2*100);
4670  }
4671  opticStats('#stat_stacks_in_33301_2').attr("data-animationstep", speedA);
4672  opticStats('#stat_stacks_in_33301_2').circliful();
4673  opticStats('#stat_stacks_in_33301_2').waypoint(function(direction){
4674
4675  //
4676//  opticStats('#stacks_in_33301_2 .counter').counterUp({
4677//    delay: 10,
4678//    time: speed
4679//  });
4680
4681    var options = {
4682      //
4683      useGrouping : false,
4684      //
4685      //
4686      separator : ',',
4687      decimal : '.',
4688      //
4689      //
4690      //
4691      useEasing : false
4692    };
4693    opticStats('#stacks_in_33301_2 .counter').attr("id", "count_stacks_in_33301_2");
4694    var count = new CountUp('count_stacks_in_33301_2', 0, countNumberstacks_in_33301_2, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33301_2), options);//(1.75/speedA)*(maxValuePercentstacks_in_33301_2)
4695    count.start();
4696    //
4697    //
4698    opticStats('#stat_stacks_in_33301_2 .circle-text').append("");
4699    opticStats('#stat_stacks_in_33301_2 .circle-text-half').append("");
4700    //
4701    //
4702    //
4703    //
4704    opticStats('#stat_stacks_in_33301_2 span > .osIcon').wrap("<div class='os-icon-wrap' />")
4705    opticStats('#stat_stacks_in_33301_2 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33301_2 .centerMe > div > span:first-child'));
4706    //
4707    //
4708    scale();
4709    this.destroy();
4710  }, { offset: '100%' });
4711
4712
4713});
4714
4715opticStats( window ).resize(function() {
4716  scale();
4717});
4718function scale() {
4719  var width = 330,
4720      currentWidth = opticStats('#stat_stacks_in_33301_2').parent().outerWidth();
4721  if(currentWidth < width) {
4722    var scale = currentWidth/width;
4723    opticStats('#stat_stacks_in_33301_2').css({
4724      "transform" : "scale("+scale+")",
4725      "transform-origin" : "0px",
4726      "-o-transform" : "scale("+scale+")",
4727      "-o-transform-origin" : "0px"
4728    });
4729  } else {
4730    opticStats('#stat_stacks_in_33301_2').css({
4731      "transform" : "scale(1)",
4732      "-o-transform" : "scale(1)"
4733    });
4734  }
4735}
4736
4737return stack;})(stacks.stacks_in_33301_2);
4738stacks.stacks_in_33303 = {};
4739stacks.stacks_in_33303 = (function(stack) {
4740
4741return stack;})(stacks.stacks_in_33303);
4742stacks.stacks_in_33313 = {};
4743stacks.stacks_in_33313 = (function(stack) {
4744var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
4745/*
4746jquery-plugin-circliful
4747+The MIT License (MIT)
4748+
4749+Copyright (c) 2014 Patric Gutersohn
4750+
4751+Permission is hereby granted, free of charge, to any person obtaining a copy of
4752+this software and associated documentation files (the "Software"), to deal in
4753+the Software without restriction, including without limitation the rights to
4754+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
4755+the Software, and to permit persons to whom the Software is furnished to do so,
4756+subject to the following conditions:
4757+
4758+The above copyright notice and this permission notice shall be included in all
4759+copies or substantial portions of the Software.
4760+
4761+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4762+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
4763+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
4764+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
4765+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
4766+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4767*/
4768"use strict";
4769
4770(function (opticStats) {
4771
4772  opticStats.fn.circliful = function (options, callback) {
4773
4774    var settings = opticStats.extend({
4775      // These are the defaults.
4776      startdegree: 0,
4777      fgcolor: "#556b2f",
4778      bgcolor: "#eee",
4779      fill: false,
4780      width: 15,
4781      dimension: 200,
4782      fontsize: 15,
4783      percent: 50,
4784      animationstep: 1.0,
4785      iconsize: '20px',
4786      iconcolor: '#999',
4787      border: 'default',
4788      complete: null,
4789      bordersize: 10
4790    }, options);
4791
4792    return this.each(function () {
4793
4794      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
4795
4796      var customSettingsObj = {};
4797      var icon = '';
4798      var percent;
4799      var endPercent = 0;
4800      var obj = opticStats(this);
4801      var fill = false;
4802      var text, info;
4803
4804      obj.addClass('circliful');
4805
4806      checkDataAttributes(obj);
4807
4808      if (obj.data('text') != undefined) {
4809
4810        //remove non number characters
4811
4812        text = obj.data('text');
4813        text = text.toString();
4814        text = text.replace(/[^0-9.,]/g, '');
4815        text = "<span class='counter'>" + text + "</span>";
4816
4817        if (obj.data('icon') != undefined) {
4818          icon = opticStats('<i></i>')
4819            .addClass('osIcon fa ' + opticStats(this).data('icon'))
4820            .css({
4821            'color': customSettingsObj.iconcolor,
4822            'font-size': customSettingsObj.iconsize,
4823            'line-height': customSettingsObj.iconsize + "px"
4824          });
4825        }
4826        if (obj.data('icon-custom') != undefined) {
4827          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
4828            .addClass('osIcon ')
4829            .css({
4830            'width': customSettingsObj.iconsize,
4831            'height': customSettingsObj.iconsize
4832          });
4833        }
4834
4835        if (obj.data('type') != undefined) {
4836          type = opticStats(this).data('type');
4837
4838          if (type == 'half') {
4839            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
4840          } else {
4841            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
4842          }
4843        } else {
4844          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
4845        }
4846      }
4847
4848      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
4849        var total = opticStats(this).data("total") / 100;
4850
4851        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
4852        endPercent = (opticStats(this).data("part") / total).toFixed(3);
4853      } else {
4854        if (opticStats(this).data("percent") != undefined) {
4855          percent = opticStats(this).data("percent") / 100;
4856          endPercent = opticStats(this).data("percent");
4857        } else {
4858          percent = settings.percent / 100;
4859        }
4860      }
4861
4862      if (opticStats(this).data('info') != undefined) {
4863        info = opticStats(this).data('info');
4864
4865        if (opticStats(this).data('type') != undefined) {
4866          type = opticStats(this).data('type');
4867
4868          if (type == 'half') {
4869            addInfoText(obj, 0.9);
4870          } else {
4871            addInfoText(obj, 1.25);
4872          }
4873        } else {
4874          addInfoText(obj, 1.25);
4875        }
4876      }
4877
4878      opticStats(this).width(customSettingsObj.dimension + 'px');
4879      if (type == 'line' || type == 'vert-line') {
4880        opticStats(this).height(opticStats(this).data('height') + 'px');
4881      } else {
4882        opticStats(this).height(customSettingsObj.dimension + 'px');
4883      }
4884
4885
4886      var sizeX = customSettingsObj.dimension,
4887          sizeY = customSettingsObj.dimension;
4888      if (type == 'line' || type == 'vert-line') {
4889        sizeY = opticStats(this).data('height');
4890      }
4891      var canvas = opticStats('<canvas></canvas>').attr({
4892        width: sizeX,
4893        height: sizeY
4894      }).appendTo(opticStats(this)).get(0);
4895      var context = canvas.getContext('2d');
4896
4897      var dpr = window.devicePixelRatio;
4898      if ( dpr ) {
4899        var opticStatscanvas = opticStats(canvas);
4900        opticStatscanvas.css('width', sizeX);
4901        opticStatscanvas.css('height', sizeY);
4902        opticStatscanvas.attr('width', sizeX * dpr);
4903        opticStatscanvas.attr('height', sizeY * dpr);
4904
4905        context.scale(dpr, dpr);
4906      }
4907
4908      var container = opticStats(canvas).parent();
4909      var x = sizeX / 2;
4910      var y = sizeY / 2;
4911      var degrees = customSettingsObj.percent * 360.0;
4912      var radians = degrees * (Math.PI / 180);
4913      var radius = sizeX / 2.5;
4914      var startAngle = 2.3 * Math.PI;
4915      var endAngle = 0;
4916      var counterClockwise = false;
4917      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
4918      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
4919      var circ = Math.PI * 2;
4920      var quart = Math.PI / 2;
4921      var type = '';
4922      var fireCallback = true;
4923      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
4924
4925      if (opticStats(this).data('type') != undefined) {
4926        type = opticStats(this).data('type');
4927        if (type == 'half') {
4928          startAngle = 2.0 * Math.PI;
4929          endAngle = 3.14;
4930          circ = Math.PI;
4931          quart = Math.PI / 0.996;
4932        } else if (type == 'angle') {
4933          startAngle = 2.25 * Math.PI;
4934          endAngle = 2.4;
4935          circ = 1.53 + Math.PI;
4936          quart = 0.73 + Math.PI / 0.996;
4937        }
4938      }
4939
4940      /**
4941             * adds text to circle
4942             *
4943             * @param obj
4944             * @param cssClass
4945             * @param lineHeight
4946             */
4947      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
4948      function addCircleText(obj, cssClass, lineHeight) {
4949        opticStats("<span></span>")
4950          .appendTo(obj)
4951          .addClass(cssClass)
4952          .html(text)
4953          .prepend(icon)
4954          .css({
4955          //'line-height': lineHeight + 'px',
4956          'font-size': customSettingsObj.fontsize + 'px',
4957          'line-height': customSettingsObj.fontsize + 'px'
4958        });
4959      }
4960
4961      /**
4962             * adds info text to circle
4963             *
4964             * @param obj
4965             * @param factor
4966             */
4967      function addInfoText(obj, factor) {
4968        opticStats('<span></span>')
4969          .appendTo(obj)
4970          .addClass('circle-info-half')
4971        //.css(
4972        //'line-height', (customSettingsObj.dimension * factor) + 'px'
4973        //)
4974          .text(info);
4975      }
4976
4977      /**
4978             * checks which data attributes are defined
4979             * @param obj
4980             */
4981      function checkDataAttributes(obj) {
4982        opticStats.each(customSettings, function (index, attribute) {
4983          if (obj.data(attribute) != undefined) {
4984            customSettingsObj[attribute] = obj.data(attribute);
4985          } else {
4986            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
4987          }
4988
4989          if (attribute == 'fill' && obj.data('fill') != undefined) {
4990            fill = true;
4991          }
4992        });
4993      }
4994
4995      //Animation Variables
4996      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
4997      // ---------------------- //
4998      // Animation Functions
4999      // ---------------------- //
5000      function blend(inColor,outColor,current){
5001        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
5002            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
5003            r,g,b,a,cur;
5004        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
5005        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
5006        if(current < .5 ) {
5007          cur = current*2;
5008          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
5009          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
5010          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
5011        } else {
5012          cur = (current-.5)*2;
5013          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
5014          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
5015          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
5016        }
5017        var a = inColors[3]+((outColors[3] - inColors[3])*current);
5018        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
5019      }
5020      if (type == 'line' || type == 'vert-line') {
5021        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
5022      }
5023      var increaseInc = function(inc, current) {
5024        if (current >= 1) {
5025          //          slowTheInc += 0.00002;
5026          //          slowTheInc = Math.min(slowTheInc, 0.005);
5027          //          inc = inc + (0.005-slowTheInc);
5028        } else {
5029          inc += 0.005;
5030        }
5031        return inc;
5032      }
5033      var moveColors = function(value, inc) {
5034        var pos = value+inc;
5035        pos = pos.toString();
5036        pos = pos.split(".").pop();
5037        pos = parseFloat("."+pos);
5038        return pos;
5039      }
5040      var createGrad = function(inc,sizeX, sizeY) {
5041        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
5042        grd.addColorStop(moveColors(0, inc),"#FF0000");
5043        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
5044        grd.addColorStop(moveColors(.2, inc),"#00FF00");
5045        grd.addColorStop(moveColors(.3, inc),"#0000FF");
5046        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
5047        grd.addColorStop(moveColors(.5, inc),"#FF0000");
5048        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
5049        grd.addColorStop(moveColors(.7, inc),"#00FF00");
5050        grd.addColorStop(moveColors(.8, inc),"#0000FF");
5051        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
5052        grd.addColorStop(moveColors(1, inc),"#FF0000");
5053        return grd;
5054      }
5055      var shadowGlow = function() {
5056        context.shadowColor = customSettingsObj.fgcolor;
5057        context.shadowOffsetX = 0;
5058        context.shadowOffsetY = 0;
5059        context.shadowBlur = 10;
5060      }
5061      var drawBorder = function() {
5062        context.lineWidth = customSettingsObj.bordersize + 1;
5063        context.strokeStyle = customSettingsObj.bgcolor;
5064        context.stroke();
5065        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
5066          //
5067        } else {
5068          context.fillStyle = customSettingsObj.fill;
5069          context.fill();
5070        }
5071        context.beginPath();
5072        context.save();
5073      }
5074      var fillAnimation = function(animationType, current) {
5075        if(animationType == 1){
5076          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
5077          context.stroke();
5078        } else if(animationType == 2){
5079          context.strokeStyle = customSettingsObj.fgcolor;
5080          if (type == 'line') {
5081            var grd=context.createLinearGradient(sizeX,0,0,0);
5082            grd.addColorStop(0,"white");
5083            grd.addColorStop(1,customSettingsObj.fgcolor);
5084            context.strokeStyle = grd;
5085            shadowGlow();
5086          } else if (type == 'vert-line') {
5087            var grd=context.createLinearGradient(0,0,0,sizeY);
5088            grd.addColorStop(0,"white");
5089            grd.addColorStop(1,customSettingsObj.fgcolor);
5090            context.strokeStyle = grd;
5091            shadowGlow();
5092          } else {
5093            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
5094            grd.addColorStop(0, customSettingsObj.fgcolor);
5095            grd.addColorStop(0.5, 'white');
5096            grd.addColorStop(1, customSettingsObj.fgcolor);
5097            context.strokeStyle = grd;
5098            shadowGlow();
5099          }
5100          context.stroke();
5101          context.restore();
5102        } else if(animationType == 3){
5103          if (type == 'line') {
5104            var grd = createGrad(inc,sizeX,sizeY);
5105            inc = increaseInc(inc,current);
5106            context.strokeStyle = grd;
5107          } else if (type == 'vert-line') {
5108            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
5109            grd.addColorStop(moveColors(0, inc),"#FF0000");
5110            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
5111            grd.addColorStop(moveColors(.2, inc),"#00FF00");
5112            grd.addColorStop(moveColors(.3, inc),"#0000FF");
5113            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
5114            grd.addColorStop(moveColors(.5, inc),"#FF0000");
5115            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
5116            grd.addColorStop(moveColors(.7, inc),"#00FF00");
5117            grd.addColorStop(moveColors(.8, inc),"#0000FF");
5118            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
5119            grd.addColorStop(moveColors(1, inc),"#FF0000");
5120            inc = increaseInc(inc,current);
5121            context.strokeStyle = grd;
5122          } else {
5123            var grd = createGrad(inc,sizeX,sizeY);
5124            inc = increaseInc(inc,current);
5125            context.strokeStyle = grd;
5126          }
5127          context.stroke();
5128          context.restore();
5129        } else {
5130          context.strokeStyle = customSettingsObj.fgcolor;
5131          context.stroke();
5132        }
5133      }
5134      // ---------------------- //
5135      // Animation
5136      // ---------------------- //
5137      function animate(current) {
5138        //Clear Canvas for next frame
5139        context.clearRect(0, 0, canvas.width, canvas.height);
5140        //Draw Background
5141        if (type == 'line' || type == 'vert-line') {
5142          context.rect(10, 10, sizeX-20, sizeY-20);
5143        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
5144          context.beginPath();
5145          context.arc(x, y, radius, endAngle, startAngle, false);
5146        }
5147        context.fillStyle = customSettingsObj.fill;
5148        context.fill();
5149        if (type == 'line') {
5150          context.beginPath();
5151          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
5152          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
5153          drawBorder();
5154          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
5155          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
5156          fillAnimation(animationType,current);
5157        } else if (type == 'vert-line'){
5158          context.beginPath();
5159          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
5160          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
5161          drawBorder();
5162          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
5163          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
5164          fillAnimation(animationType,current);
5165        } else if (type == 'full' || type=='half') {
5166          drawBorder();
5167          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
5168          fillAnimation(animationType,current);
5169        } else if (type == 'grow-circle') {
5170          drawBorder();
5171          var fillRadius = sizeX/2.5*Math.min(current,1);
5172          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
5173          if(animationType == 1){
5174            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
5175            context.fill();
5176          } else if(animationType == 2){
5177            var grd=context.createLinearGradient(0,0,0,sizeY);
5178            grd.addColorStop(0,"white");
5179            grd.addColorStop(1,customSettingsObj.fgcolor);
5180            shadowGlow();
5181            context.fillStyle = grd;
5182            context.fill();
5183          } else if(animationType == 3){
5184            var grd = createGrad(inc,sizeX,sizeY);
5185            inc = increaseInc(inc,current);
5186            context.fillStyle = grd;
5187            context.fill();
5188          } else {
5189            context.fillStyle = customSettingsObj.fgcolor;
5190            context.fill();
5191          }
5192          context.restore();
5193        } else if (type == 'fill-circle') {
5194          drawBorder();
5195          var fillRadius = sizeX/2.5,
5196              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
5197          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
5198          if(animationType == 1){
5199            context.clip();
5200            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
5201            context.fillRect(0, fillLine, sizeX, sizeY);
5202          } else if(animationType == 2){
5203            var grd=context.createLinearGradient(0,0,0,sizeY);
5204            grd.addColorStop(0,"white");
5205            grd.addColorStop(1,customSettingsObj.fgcolor);
5206            shadowGlow();
5207            context.clip();
5208            context.fillStyle = grd;
5209            context.fillRect(0, fillLine, sizeX, sizeY);
5210
5211          } else if(animationType == 3){
5212            context.clip();
5213            var grd = createGrad(inc,sizeX, sizeY);
5214            inc = increaseInc(inc,current);
5215            context.fillStyle = grd;
5216            context.fillRect(0, fillLine, sizeX, sizeY);
5217          } else {
5218            context.clip();
5219            context.fillStyle = customSettingsObj.fgcolor;
5220            context.fillRect(0, fillLine, sizeX, sizeY);
5221          }
5222          context.restore();
5223        } else if (type == 'fill-circle-wave') {
5224          drawBorder();
5225          var fillRadius = sizeX/2.5,
5226              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
5227          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
5228          var ypos=fillLine, xpos=0;
5229          counter += .1;
5230          counterLoop = counter;
5231          var increase = 2*Math.PI / 12;
5232          context.clip();
5233          context.beginPath();
5234          context.moveTo(sizeX,sizeY);
5235          context.lineTo(0,sizeY);
5236          context.lineTo(0,ypos);
5237          if (curPerc > endPercent) {
5238            calm-=.01;
5239            if(calm<0) calm=0;
5240          }
5241          for(i=0; i<=sizeX; i+=10){
5242            xpos = i;
5243            ypos =  ypos - Math.sin(counterLoop) * calm;
5244            counterLoop += increase;
5245            context.lineTo(xpos,ypos);
5246          }
5247          context.lineTo(sizeX,sizeY);
5248          context.closePath();
5249          if(animationType == 1){
5250            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
5251            context.fill();
5252          } else if(animationType == 2){
5253            var grd=context.createLinearGradient(0,0,0,sizeY);
5254            grd.addColorStop(0,"white");
5255            grd.addColorStop(1,customSettingsObj.fgcolor);
5256            shadowGlow();
5257            context.clip();
5258            context.fillStyle = grd;
5259            context.fill();
5260          } else if(animationType == 3){
5261            context.clip();
5262            var grd = createGrad(inc,sizeX,sizeY);
5263            inc = increaseInc(inc,current);
5264            context.fillStyle = grd;
5265            context.fill();
5266          } else {
5267            context.clip();
5268            context.fillStyle = customSettingsObj.fgcolor;
5269            context.fill();
5270          }
5271          context.restore();
5272        }
5273
5274        if (curPerc < endPercent) {
5275          curPerc += curStep;
5276          requestAnimationFrame(function () {
5277            context.strokeStyle = customSettingsObj.fgcolor;
5278            animate(Math.min(curPerc, endPercent) / 100);
5279          }, obj);
5280        } else if(finishFrames < 500) {
5281          curPerc += curStep;
5282          finishFrames+=1;
5283          requestAnimationFrame(function () {
5284            context.strokeStyle = customSettingsObj.fgcolor;
5285            animate(Math.min(curPerc, endPercent) / 100);
5286          }, obj);
5287        }
5288
5289        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
5290          if (opticStats.isFunction(options.complete)) {
5291            options.complete();
5292
5293            fireCallback = false;
5294          }
5295        }
5296      }
5297      obj.waypoint(function(direction){
5298        animate(curPerc / 100);
5299        this.destroy();
5300      }, { offset: '100%' });
5301    });
5302  };
5303}(opticStats));
5304/*
5305 The MIT License (MIT)
5306 CountUp
5307+Copyright (c) 2014-2015 Jamie Perkins
5308 Permission is hereby granted, free of charge, to any person obtaining a copy of
5309 this software and associated documentation files (the "Software"), to deal in
5310*/
5311!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
5312/*!
5313Waypoints - 4.0.0
5314Copyright © 2011-2015 Caleb Troughton
5315Licensed under the MIT license.
5316https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
5317*/
5318!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");
vendor: 6,526 bytes, line 5318
5318this.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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
5318ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
5319
5320opticStats( document ).ready(function() {
5321  var speed =  3000,
5322      countNumberstacks_in_33313 = "50",
5323      decimalNumber = '0',
5324      decimalNumber = decimalNumber.replace(/\D/g,''),
5325      decimalLength = decimalNumber.length,
5326      maxValuePercentstacks_in_33313 = (countNumberstacks_in_33313/50),
5327      speedA = (2000/speed)*maxValuePercentstacks_in_33313;
5328  if (50 == 0) {
5329    if(countNumberstacks_in_33313 < 0) {
5330      maxValuePercentstacks_in_33313 = 1;
5331    } else {
5332      maxValuePercentstacks_in_33313 = (0-countNumberstacks_in_33313)/0;
5333    }
5334  }
5335  if('False' == 'False' ) {
5336     decimalLength = 0;
5337  } else {
5338    countNumberstacks_in_33313 = countNumberstacks_in_33313.replace(/\D/g,'');
5339    countNumberstacks_in_33313 = countNumberstacks_in_33313+"."+decimalNumber;
5340  }
5341  if('False' == 'True' ) {
5342    var items = readData_data(opticStats("#data"));
5343    countNumberstacks_in_33313 = items['data-A1'];
5344    if(countNumberstacks_in_33313 ==  null) {
5345      countNumberstacks_in_33313 = '0';
5346    }
5347    opticStats("#stat_stacks_in_33313").data("percent", maxValuePercentstacks_in_33313*100);
5348    //
5349    //
5350    if(countNumberstacks_in_33313.indexOf(".") !== -1) {
5351      decimalNumber = countNumberstacks_in_33313.substr(countNumberstacks_in_33313.indexOf(".") + 1);
5352      decimalNumber = decimalNumber.replace(/\D/g,'');
5353      decimalLength = decimalNumber.length;
5354      countNumberstacks_in_33313 = countNumberstacks_in_33313.substr(0, countNumberstacks_in_33313.indexOf('.'));
5355    }
5356    //
5357    //
5358    countNumberstacks_in_33313 = countNumberstacks_in_33313.replace(/[^0-9\-]/g,'');
5359    countNumberstacks_in_33313 = countNumberstacks_in_33313+"."+decimalNumber;
5360    maxValuePercentstacks_in_33313 = (countNumberstacks_in_33313/50);
5361    if (50 == 0) {
5362      if(countNumberstacks_in_33313 < 0) {
5363        maxValuePercentstacks_in_33313 = 1;
5364      } else {
5365        maxValuePercentstacks_in_33313 = (0-countNumberstacks_in_33313)/0;
5366      }
5367    }
5368    speedA = (2000/speed)*maxValuePercentstacks_in_33313;
5369    opticStats("#stat_stacks_in_33313").data("percent", maxValuePercentstacks_in_33313*100);
5370  } else {
5371    var maxValuePercentstacks_in_33313 = (countNumberstacks_in_33313/50);
5372    if (50 == 0) {
5373      if(countNumberstacks_in_33313 < 0) {
5374        maxValuePercentstacks_in_33313 = 1;
5375      } else {
5376        maxValuePercentstacks_in_33313 = (0-countNumberstacks_in_33313)/0;
5377      }
5378    }
5379    speedA = (2000/speed)*maxValuePercentstacks_in_33313;
5380    opticStats("#stat_stacks_in_33313").data("percent", maxValuePercentstacks_in_33313*100);
5381  }
5382  opticStats('#stat_stacks_in_33313').attr("data-animationstep", speedA);
5383  opticStats('#stat_stacks_in_33313').circliful();
5384  opticStats('#stat_stacks_in_33313').waypoint(function(direction){
5385
5386  //
5387//  opticStats('#stacks_in_33313 .counter').counterUp({
5388//    delay: 10,
5389//    time: speed
5390//  });
5391
5392    var options = {
5393      //
5394      useGrouping : false,
5395      //
5396      //
5397      separator : ',',
5398      decimal : '.',
5399      //
5400      //
5401      //
5402      useEasing : false
5403    };
5404    opticStats('#stacks_in_33313 .counter').attr("id", "count_stacks_in_33313");
5405    var count = new CountUp('count_stacks_in_33313', 0, countNumberstacks_in_33313, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33313), options);//(1.75/speedA)*(maxValuePercentstacks_in_33313)
5406    count.start();
5407    //
5408    //
5409    opticStats('#stat_stacks_in_33313 .circle-text').append("");
5410    opticStats('#stat_stacks_in_33313 .circle-text-half').append("");
5411    //
5412    //
5413    //
5414    //
5415    opticStats('#stat_stacks_in_33313 span > .osIcon').wrap("<div class='os-icon-wrap' />")
5416    opticStats('#stat_stacks_in_33313 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33313 .centerMe > div > span:first-child'));
5417    //
5418    //
5419    scale();
5420    this.destroy();
5421  }, { offset: '100%' });
5422
5423
5424});
5425
5426opticStats( window ).resize(function() {
5427  scale();
5428});
5429function scale() {
5430  var width = 290,
5431      currentWidth = opticStats('#stat_stacks_in_33313').parent().outerWidth();
5432  if(currentWidth < width) {
5433    var scale = currentWidth/width;
5434    opticStats('#stat_stacks_in_33313').css({
5435      "transform" : "scale("+scale+")",
5436      "transform-origin" : "0px",
5437      "-o-transform" : "scale("+scale+")",
5438      "-o-transform-origin" : "0px"
5439    });
5440  } else {
5441    opticStats('#stat_stacks_in_33313').css({
5442      "transform" : "scale(1)",
5443      "-o-transform" : "scale(1)"
5444    });
5445  }
5446}
5447
5448return stack;})(stacks.stacks_in_33313);
5449stacks.stacks_in_33314 = {};
5450stacks.stacks_in_33314 = (function(stack) {
5451
5452return stack;})(stacks.stacks_in_33314);
5453stacks.stacks_in_33320 = {};
5454stacks.stacks_in_33320 = (function(stack) {
5455var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
5456/*
5457jquery-plugin-circliful
5458+The MIT License (MIT)
5459+
5460+Copyright (c) 2014 Patric Gutersohn
5461+
5462+Permission is hereby granted, free of charge, to any person obtaining a copy of
5463+this software and associated documentation files (the "Software"), to deal in
5464+the Software without restriction, including without limitation the rights to
5465+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
5466+the Software, and to permit persons to whom the Software is furnished to do so,
5467+subject to the following conditions:
5468+
5469+The above copyright notice and this permission notice shall be included in all
5470+copies or substantial portions of the Software.
5471+
5472+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
5473+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
5474+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
5475+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
5476+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
5477+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
5478*/
5479"use strict";
5480
5481(function (opticStats) {
5482
5483  opticStats.fn.circliful = function (options, callback) {
5484
5485    var settings = opticStats.extend({
5486      // These are the defaults.
5487      startdegree: 0,
5488      fgcolor: "#556b2f",
5489      bgcolor: "#eee",
5490      fill: false,
5491      width: 15,
5492      dimension: 200,
5493      fontsize: 15,
5494      percent: 50,
5495      animationstep: 1.0,
5496      iconsize: '20px',
5497      iconcolor: '#999',
5498      border: 'default',
5499      complete: null,
5500      bordersize: 10
5501    }, options);
5502
5503    return this.each(function () {
5504
5505      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
5506
5507      var customSettingsObj = {};
5508      var icon = '';
5509      var percent;
5510      var endPercent = 0;
5511      var obj = opticStats(this);
5512      var fill = false;
5513      var text, info;
5514
5515      obj.addClass('circliful');
5516
5517      checkDataAttributes(obj);
5518
5519      if (obj.data('text') != undefined) {
5520
5521        //remove non number characters
5522
5523        text = obj.data('text');
5524        text = text.toString();
5525        text = text.replace(/[^0-9.,]/g, '');
5526        text = "<span class='counter'>" + text + "</span>";
5527
5528        if (obj.data('icon') != undefined) {
5529          icon = opticStats('<i></i>')
5530            .addClass('osIcon fa ' + opticStats(this).data('icon'))
5531            .css({
5532            'color': customSettingsObj.iconcolor,
5533            'font-size': customSettingsObj.iconsize,
5534            'line-height': customSettingsObj.iconsize + "px"
5535          });
5536        }
5537        if (obj.data('icon-custom') != undefined) {
5538          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
5539            .addClass('osIcon ')
5540            .css({
5541            'width': customSettingsObj.iconsize,
5542            'height': customSettingsObj.iconsize
5543          });
5544        }
5545
5546        if (obj.data('type') != undefined) {
5547          type = opticStats(this).data('type');
5548
5549          if (type == 'half') {
5550            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
5551          } else {
5552            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
5553          }
5554        } else {
5555          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
5556        }
5557      }
5558
5559      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
5560        var total = opticStats(this).data("total") / 100;
5561
5562        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
5563        endPercent = (opticStats(this).data("part") / total).toFixed(3);
5564      } else {
5565        if (opticStats(this).data("percent") != undefined) {
5566          percent = opticStats(this).data("percent") / 100;
5567          endPercent = opticStats(this).data("percent");
5568        } else {
5569          percent = settings.percent / 100;
5570        }
5571      }
5572
5573      if (opticStats(this).data('info') != undefined) {
5574        info = opticStats(this).data('info');
5575
5576        if (opticStats(this).data('type') != undefined) {
5577          type = opticStats(this).data('type');
5578
5579          if (type == 'half') {
5580            addInfoText(obj, 0.9);
5581          } else {
5582            addInfoText(obj, 1.25);
5583          }
5584        } else {
5585          addInfoText(obj, 1.25);
5586        }
5587      }
5588
5589      opticStats(this).width(customSettingsObj.dimension + 'px');
5590      if (type == 'line' || type == 'vert-line') {
5591        opticStats(this).height(opticStats(this).data('height') + 'px');
5592      } else {
5593        opticStats(this).height(customSettingsObj.dimension + 'px');
5594      }
5595
5596
5597      var sizeX = customSettingsObj.dimension,
5598          sizeY = customSettingsObj.dimension;
5599      if (type == 'line' || type == 'vert-line') {
5600        sizeY = opticStats(this).data('height');
5601      }
5602      var canvas = opticStats('<canvas></canvas>').attr({
5603        width: sizeX,
5604        height: sizeY
5605      }).appendTo(opticStats(this)).get(0);
5606      var context = canvas.getContext('2d');
5607
5608      var dpr = window.devicePixelRatio;
5609      if ( dpr ) {
5610        var opticStatscanvas = opticStats(canvas);
5611        opticStatscanvas.css('width', sizeX);
5612        opticStatscanvas.css('height', sizeY);
5613        opticStatscanvas.attr('width', sizeX * dpr);
5614        opticStatscanvas.attr('height', sizeY * dpr);
5615
5616        context.scale(dpr, dpr);
5617      }
5618
5619      var container = opticStats(canvas).parent();
5620      var x = sizeX / 2;
5621      var y = sizeY / 2;
5622      var degrees = customSettingsObj.percent * 360.0;
5623      var radians = degrees * (Math.PI / 180);
5624      var radius = sizeX / 2.5;
5625      var startAngle = 2.3 * Math.PI;
5626      var endAngle = 0;
5627      var counterClockwise = false;
5628      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
5629      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
5630      var circ = Math.PI * 2;
5631      var quart = Math.PI / 2;
5632      var type = '';
5633      var fireCallback = true;
5634      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
5635
5636      if (opticStats(this).data('type') != undefined) {
5637        type = opticStats(this).data('type');
5638        if (type == 'half') {
5639          startAngle = 2.0 * Math.PI;
5640          endAngle = 3.14;
5641          circ = Math.PI;
5642          quart = Math.PI / 0.996;
5643        } else if (type == 'angle') {
5644          startAngle = 2.25 * Math.PI;
5645          endAngle = 2.4;
5646          circ = 1.53 + Math.PI;
5647          quart = 0.73 + Math.PI / 0.996;
5648        }
5649      }
5650
5651      /**
5652             * adds text to circle
5653             *
5654             * @param obj
5655             * @param cssClass
5656             * @param lineHeight
5657             */
5658      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
5659      function addCircleText(obj, cssClass, lineHeight) {
5660        opticStats("<span></span>")
5661          .appendTo(obj)
5662          .addClass(cssClass)
5663          .html(text)
5664          .prepend(icon)
5665          .css({
5666          //'line-height': lineHeight + 'px',
5667          'font-size': customSettingsObj.fontsize + 'px',
5668          'line-height': customSettingsObj.fontsize + 'px'
5669        });
5670      }
5671
5672      /**
5673             * adds info text to circle
5674             *
5675             * @param obj
5676             * @param factor
5677             */
5678      function addInfoText(obj, factor) {
5679        opticStats('<span></span>')
5680          .appendTo(obj)
5681          .addClass('circle-info-half')
5682        //.css(
5683        //'line-height', (customSettingsObj.dimension * factor) + 'px'
5684        //)
5685          .text(info);
5686      }
5687
5688      /**
5689             * checks which data attributes are defined
5690             * @param obj
5691             */
5692      function checkDataAttributes(obj) {
5693        opticStats.each(customSettings, function (index, attribute) {
5694          if (obj.data(attribute) != undefined) {
5695            customSettingsObj[attribute] = obj.data(attribute);
5696          } else {
5697            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
5698          }
5699
5700          if (attribute == 'fill' && obj.data('fill') != undefined) {
5701            fill = true;
5702          }
5703        });
5704      }
5705
5706      //Animation Variables
5707      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
5708      // ---------------------- //
5709      // Animation Functions
5710      // ---------------------- //
5711      function blend(inColor,outColor,current){
5712        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
5713            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
5714            r,g,b,a,cur;
5715        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
5716        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
5717        if(current < .5 ) {
5718          cur = current*2;
5719          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
5720          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
5721          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
5722        } else {
5723          cur = (current-.5)*2;
5724          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
5725          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
5726          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
5727        }
5728        var a = inColors[3]+((outColors[3] - inColors[3])*current);
5729        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
5730      }
5731      if (type == 'line' || type == 'vert-line') {
5732        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
5733      }
5734      var increaseInc = function(inc, current) {
5735        if (current >= 1) {
5736          //          slowTheInc += 0.00002;
5737          //          slowTheInc = Math.min(slowTheInc, 0.005);
5738          //          inc = inc + (0.005-slowTheInc);
5739        } else {
5740          inc += 0.005;
5741        }
5742        return inc;
5743      }
5744      var moveColors = function(value, inc) {
5745        var pos = value+inc;
5746        pos = pos.toString();
5747        pos = pos.split(".").pop();
5748        pos = parseFloat("."+pos);
5749        return pos;
5750      }
5751      var createGrad = function(inc,sizeX, sizeY) {
5752        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
5753        grd.addColorStop(moveColors(0, inc),"#FF0000");
5754        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
5755        grd.addColorStop(moveColors(.2, inc),"#00FF00");
5756        grd.addColorStop(moveColors(.3, inc),"#0000FF");
5757        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
5758        grd.addColorStop(moveColors(.5, inc),"#FF0000");
5759        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
5760        grd.addColorStop(moveColors(.7, inc),"#00FF00");
5761        grd.addColorStop(moveColors(.8, inc),"#0000FF");
5762        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
5763        grd.addColorStop(moveColors(1, inc),"#FF0000");
5764        return grd;
5765      }
5766      var shadowGlow = function() {
5767        context.shadowColor = customSettingsObj.fgcolor;
5768        context.shadowOffsetX = 0;
5769        context.shadowOffsetY = 0;
5770        context.shadowBlur = 10;
5771      }
5772      var drawBorder = function() {
5773        context.lineWidth = customSettingsObj.bordersize + 1;
5774        context.strokeStyle = customSettingsObj.bgcolor;
5775        context.stroke();
5776        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
5777          //
5778        } else {
5779          context.fillStyle = customSettingsObj.fill;
5780          context.fill();
5781        }
5782        context.beginPath();
5783        context.save();
5784      }
5785      var fillAnimation = function(animationType, current) {
5786        if(animationType == 1){
5787          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
5788          context.stroke();
5789        } else if(animationType == 2){
5790          context.strokeStyle = customSettingsObj.fgcolor;
5791          if (type == 'line') {
5792            var grd=context.createLinearGradient(sizeX,0,0,0);
5793            grd.addColorStop(0,"white");
5794            grd.addColorStop(1,customSettingsObj.fgcolor);
5795            context.strokeStyle = grd;
5796            shadowGlow();
5797          } else if (type == 'vert-line') {
5798            var grd=context.createLinearGradient(0,0,0,sizeY);
5799            grd.addColorStop(0,"white");
5800            grd.addColorStop(1,customSettingsObj.fgcolor);
5801            context.strokeStyle = grd;
5802            shadowGlow();
5803          } else {
5804            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
5805            grd.addColorStop(0, customSettingsObj.fgcolor);
5806            grd.addColorStop(0.5, 'white');
5807            grd.addColorStop(1, customSettingsObj.fgcolor);
5808            context.strokeStyle = grd;
5809            shadowGlow();
5810          }
5811          context.stroke();
5812          context.restore();
5813        } else if(animationType == 3){
5814          if (type == 'line') {
5815            var grd = createGrad(inc,sizeX,sizeY);
5816            inc = increaseInc(inc,current);
5817            context.strokeStyle = grd;
5818          } else if (type == 'vert-line') {
5819            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
5820            grd.addColorStop(moveColors(0, inc),"#FF0000");
5821            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
5822            grd.addColorStop(moveColors(.2, inc),"#00FF00");
5823            grd.addColorStop(moveColors(.3, inc),"#0000FF");
5824            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
5825            grd.addColorStop(moveColors(.5, inc),"#FF0000");
5826            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
5827            grd.addColorStop(moveColors(.7, inc),"#00FF00");
5828            grd.addColorStop(moveColors(.8, inc),"#0000FF");
5829            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
5830            grd.addColorStop(moveColors(1, inc),"#FF0000");
5831            inc = increaseInc(inc,current);
5832            context.strokeStyle = grd;
5833          } else {
5834            var grd = createGrad(inc,sizeX,sizeY);
5835            inc = increaseInc(inc,current);
5836            context.strokeStyle = grd;
5837          }
5838          context.stroke();
5839          context.restore();
5840        } else {
5841          context.strokeStyle = customSettingsObj.fgcolor;
5842          context.stroke();
5843        }
5844      }
5845      // ---------------------- //
5846      // Animation
5847      // ---------------------- //
5848      function animate(current) {
5849        //Clear Canvas for next frame
5850        context.clearRect(0, 0, canvas.width, canvas.height);
5851        //Draw Background
5852        if (type == 'line' || type == 'vert-line') {
5853          context.rect(10, 10, sizeX-20, sizeY-20);
5854        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
5855          context.beginPath();
5856          context.arc(x, y, radius, endAngle, startAngle, false);
5857        }
5858        context.fillStyle = customSettingsObj.fill;
5859        context.fill();
5860        if (type == 'line') {
5861          context.beginPath();
5862          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
5863          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
5864          drawBorder();
5865          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
5866          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
5867          fillAnimation(animationType,current);
5868        } else if (type == 'vert-line'){
5869          context.beginPath();
5870          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
5871          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
5872          drawBorder();
5873          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
5874          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
5875          fillAnimation(animationType,current);
5876        } else if (type == 'full' || type=='half') {
5877          drawBorder();
5878          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
5879          fillAnimation(animationType,current);
5880        } else if (type == 'grow-circle') {
5881          drawBorder();
5882          var fillRadius = sizeX/2.5*Math.min(current,1);
5883          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
5884          if(animationType == 1){
5885            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
5886            context.fill();
5887          } else if(animationType == 2){
5888            var grd=context.createLinearGradient(0,0,0,sizeY);
5889            grd.addColorStop(0,"white");
5890            grd.addColorStop(1,customSettingsObj.fgcolor);
5891            shadowGlow();
5892            context.fillStyle = grd;
5893            context.fill();
5894          } else if(animationType == 3){
5895            var grd = createGrad(inc,sizeX,sizeY);
5896            inc = increaseInc(inc,current);
5897            context.fillStyle = grd;
5898            context.fill();
5899          } else {
5900            context.fillStyle = customSettingsObj.fgcolor;
5901            context.fill();
5902          }
5903          context.restore();
5904        } else if (type == 'fill-circle') {
5905          drawBorder();
5906          var fillRadius = sizeX/2.5,
5907              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
5908          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
5909          if(animationType == 1){
5910            context.clip();
5911            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
5912            context.fillRect(0, fillLine, sizeX, sizeY);
5913          } else if(animationType == 2){
5914            var grd=context.createLinearGradient(0,0,0,sizeY);
5915            grd.addColorStop(0,"white");
5916            grd.addColorStop(1,customSettingsObj.fgcolor);
5917            shadowGlow();
5918            context.clip();
5919            context.fillStyle = grd;
5920            context.fillRect(0, fillLine, sizeX, sizeY);
5921
5922          } else if(animationType == 3){
5923            context.clip();
5924            var grd = createGrad(inc,sizeX, sizeY);
5925            inc = increaseInc(inc,current);
5926            context.fillStyle = grd;
5927            context.fillRect(0, fillLine, sizeX, sizeY);
5928          } else {
5929            context.clip();
5930            context.fillStyle = customSettingsObj.fgcolor;
5931            context.fillRect(0, fillLine, sizeX, sizeY);
5932          }
5933          context.restore();
5934        } else if (type == 'fill-circle-wave') {
5935          drawBorder();
5936          var fillRadius = sizeX/2.5,
5937              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
5938          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
5939          var ypos=fillLine, xpos=0;
5940          counter += .1;
5941          counterLoop = counter;
5942          var increase = 2*Math.PI / 12;
5943          context.clip();
5944          context.beginPath();
5945          context.moveTo(sizeX,sizeY);
5946          context.lineTo(0,sizeY);
5947          context.lineTo(0,ypos);
5948          if (curPerc > endPercent) {
5949            calm-=.01;
5950            if(calm<0) calm=0;
5951          }
5952          for(i=0; i<=sizeX; i+=10){
5953            xpos = i;
5954            ypos =  ypos - Math.sin(counterLoop) * calm;
5955            counterLoop += increase;
5956            context.lineTo(xpos,ypos);
5957          }
5958          context.lineTo(sizeX,sizeY);
5959          context.closePath();
5960          if(animationType == 1){
5961            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
5962            context.fill();
5963          } else if(animationType == 2){
5964            var grd=context.createLinearGradient(0,0,0,sizeY);
5965            grd.addColorStop(0,"white");
5966            grd.addColorStop(1,customSettingsObj.fgcolor);
5967            shadowGlow();
5968            context.clip();
5969            context.fillStyle = grd;
5970            context.fill();
5971          } else if(animationType == 3){
5972            context.clip();
5973            var grd = createGrad(inc,sizeX,sizeY);
5974            inc = increaseInc(inc,current);
5975            context.fillStyle = grd;
5976            context.fill();
5977          } else {
5978            context.clip();
5979            context.fillStyle = customSettingsObj.fgcolor;
5980            context.fill();
5981          }
5982          context.restore();
5983        }
5984
5985        if (curPerc < endPercent) {
5986          curPerc += curStep;
5987          requestAnimationFrame(function () {
5988            context.strokeStyle = customSettingsObj.fgcolor;
5989            animate(Math.min(curPerc, endPercent) / 100);
5990          }, obj);
5991        } else if(finishFrames < 500) {
5992          curPerc += curStep;
5993          finishFrames+=1;
5994          requestAnimationFrame(function () {
5995            context.strokeStyle = customSettingsObj.fgcolor;
5996            animate(Math.min(curPerc, endPercent) / 100);
5997          }, obj);
5998        }
5999
6000        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
6001          if (opticStats.isFunction(options.complete)) {
6002            options.complete();
6003
6004            fireCallback = false;
6005          }
6006        }
6007      }
6008      obj.waypoint(function(direction){
6009        animate(curPerc / 100);
6010        this.destroy();
6011      }, { offset: '100%' });
6012    });
6013  };
6014}(opticStats));
6015/*
6016 The MIT License (MIT)
6017 CountUp
6018+Copyright (c) 2014-2015 Jamie Perkins
6019 Permission is hereby granted, free of charge, to any person obtaining a copy of
6020 this software and associated documentation files (the "Software"), to deal in
6021*/
6022!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
6023/*!
6024Waypoints - 4.0.0
6025Copyright © 2011-2015 Caleb Troughton
6026Licensed under the MIT license.
6027https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6028*/
6029!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");
vendor: 6,526 bytes, line 6029
6029this.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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
6029ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
6030
6031opticStats( document ).ready(function() {
6032  var speed =  3000,
6033      countNumberstacks_in_33320 = "139",
6034      decimalNumber = '0',
6035      decimalNumber = decimalNumber.replace(/\D/g,''),
6036      decimalLength = decimalNumber.length,
6037      maxValuePercentstacks_in_33320 = (countNumberstacks_in_33320/139),
6038      speedA = (2000/speed)*maxValuePercentstacks_in_33320;
6039  if (139 == 0) {
6040    if(countNumberstacks_in_33320 < 0) {
6041      maxValuePercentstacks_in_33320 = 1;
6042    } else {
6043      maxValuePercentstacks_in_33320 = (0-countNumberstacks_in_33320)/0;
6044    }
6045  }
6046  if('False' == 'False' ) {
6047     decimalLength = 0;
6048  } else {
6049    countNumberstacks_in_33320 = countNumberstacks_in_33320.replace(/\D/g,'');
6050    countNumberstacks_in_33320 = countNumberstacks_in_33320+"."+decimalNumber;
6051  }
6052  if('False' == 'True' ) {
6053    var items = readData_data(opticStats("#data"));
6054    countNumberstacks_in_33320 = items['data-A1'];
6055    if(countNumberstacks_in_33320 ==  null) {
6056      countNumberstacks_in_33320 = '0';
6057    }
6058    opticStats("#stat_stacks_in_33320").data("percent", maxValuePercentstacks_in_33320*100);
6059    //
6060    //
6061    if(countNumberstacks_in_33320.indexOf(".") !== -1) {
6062      decimalNumber = countNumberstacks_in_33320.substr(countNumberstacks_in_33320.indexOf(".") + 1);
6063      decimalNumber = decimalNumber.replace(/\D/g,'');
6064      decimalLength = decimalNumber.length;
6065      countNumberstacks_in_33320 = countNumberstacks_in_33320.substr(0, countNumberstacks_in_33320.indexOf('.'));
6066    }
6067    //
6068    //
6069    countNumberstacks_in_33320 = countNumberstacks_in_33320.replace(/[^0-9\-]/g,'');
6070    countNumberstacks_in_33320 = countNumberstacks_in_33320+"."+decimalNumber;
6071    maxValuePercentstacks_in_33320 = (countNumberstacks_in_33320/139);
6072    if (139 == 0) {
6073      if(countNumberstacks_in_33320 < 0) {
6074        maxValuePercentstacks_in_33320 = 1;
6075      } else {
6076        maxValuePercentstacks_in_33320 = (0-countNumberstacks_in_33320)/0;
6077      }
6078    }
6079    speedA = (2000/speed)*maxValuePercentstacks_in_33320;
6080    opticStats("#stat_stacks_in_33320").data("percent", maxValuePercentstacks_in_33320*100);
6081  } else {
6082    var maxValuePercentstacks_in_33320 = (countNumberstacks_in_33320/139);
6083    if (139 == 0) {
6084      if(countNumberstacks_in_33320 < 0) {
6085        maxValuePercentstacks_in_33320 = 1;
6086      } else {
6087        maxValuePercentstacks_in_33320 = (0-countNumberstacks_in_33320)/0;
6088      }
6089    }
6090    speedA = (2000/speed)*maxValuePercentstacks_in_33320;
6091    opticStats("#stat_stacks_in_33320").data("percent", maxValuePercentstacks_in_33320*100);
6092  }
6093  opticStats('#stat_stacks_in_33320').attr("data-animationstep", speedA);
6094  opticStats('#stat_stacks_in_33320').circliful();
6095  opticStats('#stat_stacks_in_33320').waypoint(function(direction){
6096
6097  //
6098//  opticStats('#stacks_in_33320 .counter').counterUp({
6099//    delay: 10,
6100//    time: speed
6101//  });
6102
6103    var options = {
6104      //
6105      useGrouping : false,
6106      //
6107      //
6108      separator : ',',
6109      decimal : '.',
6110      //
6111      //
6112      //
6113      useEasing : false
6114    };
6115    opticStats('#stacks_in_33320 .counter').attr("id", "count_stacks_in_33320");
6116    var count = new CountUp('count_stacks_in_33320', 0, countNumberstacks_in_33320, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33320), options);//(1.75/speedA)*(maxValuePercentstacks_in_33320)
6117    count.start();
6118    //
6119    //
6120    opticStats('#stat_stacks_in_33320 .circle-text').append("");
6121    opticStats('#stat_stacks_in_33320 .circle-text-half').append("");
6122    //
6123    //
6124    //
6125    //
6126    opticStats('#stat_stacks_in_33320 span > .osIcon').wrap("<div class='os-icon-wrap' />")
6127    opticStats('#stat_stacks_in_33320 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33320 .centerMe > div > span:first-child'));
6128    //
6129    //
6130    scale();
6131    this.destroy();
6132  }, { offset: '100%' });
6133
6134
6135});
6136
6137opticStats( window ).resize(function() {
6138  scale();
6139});
6140function scale() {
6141  var width = 290,
6142      currentWidth = opticStats('#stat_stacks_in_33320').parent().outerWidth();
6143  if(currentWidth < width) {
6144    var scale = currentWidth/width;
6145    opticStats('#stat_stacks_in_33320').css({
6146      "transform" : "scale("+scale+")",
6147      "transform-origin" : "0px",
6148      "-o-transform" : "scale("+scale+")",
6149      "-o-transform-origin" : "0px"
6150    });
6151  } else {
6152    opticStats('#stat_stacks_in_33320').css({
6153      "transform" : "scale(1)",
6154      "-o-transform" : "scale(1)"
6155    });
6156  }
6157}
6158
6159return stack;})(stacks.stacks_in_33320);
6160stacks.stacks_in_33321 = {};
6161stacks.stacks_in_33321 = (function(stack) {
6162
6163return stack;})(stacks.stacks_in_33321);
6164stacks.stacks_in_33328 = {};
6165stacks.stacks_in_33328 = (function(stack) {
6166var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
6167/*
6168jquery-plugin-circliful
6169+The MIT License (MIT)
6170+
6171+Copyright (c) 2014 Patric Gutersohn
6172+
6173+Permission is hereby granted, free of charge, to any person obtaining a copy of
6174+this software and associated documentation files (the "Software"), to deal in
6175+the Software without restriction, including without limitation the rights to
6176+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
6177+the Software, and to permit persons to whom the Software is furnished to do so,
6178+subject to the following conditions:
6179+
6180+The above copyright notice and this permission notice shall be included in all
6181+copies or substantial portions of the Software.
6182+
6183+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6184+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
6185+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
6186+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
6187+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
6188+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
6189*/
6190"use strict";
6191
6192(function (opticStats) {
6193
6194  opticStats.fn.circliful = function (options, callback) {
6195
6196    var settings = opticStats.extend({
6197      // These are the defaults.
6198      startdegree: 0,
6199      fgcolor: "#556b2f",
6200      bgcolor: "#eee",
6201      fill: false,
6202      width: 15,
6203      dimension: 200,
6204      fontsize: 15,
6205      percent: 50,
6206      animationstep: 1.0,
6207      iconsize: '20px',
6208      iconcolor: '#999',
6209      border: 'default',
6210      complete: null,
6211      bordersize: 10
6212    }, options);
6213
6214    return this.each(function () {
6215
6216      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
6217
6218      var customSettingsObj = {};
6219      var icon = '';
6220      var percent;
6221      var endPercent = 0;
6222      var obj = opticStats(this);
6223      var fill = false;
6224      var text, info;
6225
6226      obj.addClass('circliful');
6227
6228      checkDataAttributes(obj);
6229
6230      if (obj.data('text') != undefined) {
6231
6232        //remove non number characters
6233
6234        text = obj.data('text');
6235        text = text.toString();
6236        text = text.replace(/[^0-9.,]/g, '');
6237        text = "<span class='counter'>" + text + "</span>";
6238
6239        if (obj.data('icon') != undefined) {
6240          icon = opticStats('<i></i>')
6241            .addClass('osIcon fa ' + opticStats(this).data('icon'))
6242            .css({
6243            'color': customSettingsObj.iconcolor,
6244            'font-size': customSettingsObj.iconsize,
6245            'line-height': customSettingsObj.iconsize + "px"
6246          });
6247        }
6248        if (obj.data('icon-custom') != undefined) {
6249          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
6250            .addClass('osIcon ')
6251            .css({
6252            'width': customSettingsObj.iconsize,
6253            'height': customSettingsObj.iconsize
6254          });
6255        }
6256
6257        if (obj.data('type') != undefined) {
6258          type = opticStats(this).data('type');
6259
6260          if (type == 'half') {
6261            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
6262          } else {
6263            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
6264          }
6265        } else {
6266          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
6267        }
6268      }
6269
6270      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
6271        var total = opticStats(this).data("total") / 100;
6272
6273        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
6274        endPercent = (opticStats(this).data("part") / total).toFixed(3);
6275      } else {
6276        if (opticStats(this).data("percent") != undefined) {
6277          percent = opticStats(this).data("percent") / 100;
6278          endPercent = opticStats(this).data("percent");
6279        } else {
6280          percent = settings.percent / 100;
6281        }
6282      }
6283
6284      if (opticStats(this).data('info') != undefined) {
6285        info = opticStats(this).data('info');
6286
6287        if (opticStats(this).data('type') != undefined) {
6288          type = opticStats(this).data('type');
6289
6290          if (type == 'half') {
6291            addInfoText(obj, 0.9);
6292          } else {
6293            addInfoText(obj, 1.25);
6294          }
6295        } else {
6296          addInfoText(obj, 1.25);
6297        }
6298      }
6299
6300      opticStats(this).width(customSettingsObj.dimension + 'px');
6301      if (type == 'line' || type == 'vert-line') {
6302        opticStats(this).height(opticStats(this).data('height') + 'px');
6303      } else {
6304        opticStats(this).height(customSettingsObj.dimension + 'px');
6305      }
6306
6307
6308      var sizeX = customSettingsObj.dimension,
6309          sizeY = customSettingsObj.dimension;
6310      if (type == 'line' || type == 'vert-line') {
6311        sizeY = opticStats(this).data('height');
6312      }
6313      var canvas = opticStats('<canvas></canvas>').attr({
6314        width: sizeX,
6315        height: sizeY
6316      }).appendTo(opticStats(this)).get(0);
6317      var context = canvas.getContext('2d');
6318
6319      var dpr = window.devicePixelRatio;
6320      if ( dpr ) {
6321        var opticStatscanvas = opticStats(canvas);
6322        opticStatscanvas.css('width', sizeX);
6323        opticStatscanvas.css('height', sizeY);
6324        opticStatscanvas.attr('width', sizeX * dpr);
6325        opticStatscanvas.attr('height', sizeY * dpr);
6326
6327        context.scale(dpr, dpr);
6328      }
6329
6330      var container = opticStats(canvas).parent();
6331      var x = sizeX / 2;
6332      var y = sizeY / 2;
6333      var degrees = customSettingsObj.percent * 360.0;
6334      var radians = degrees * (Math.PI / 180);
6335      var radius = sizeX / 2.5;
6336      var startAngle = 2.3 * Math.PI;
6337      var endAngle = 0;
6338      var counterClockwise = false;
6339      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
6340      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
6341      var circ = Math.PI * 2;
6342      var quart = Math.PI / 2;
6343      var type = '';
6344      var fireCallback = true;
6345      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
6346
6347      if (opticStats(this).data('type') != undefined) {
6348        type = opticStats(this).data('type');
6349        if (type == 'half') {
6350          startAngle = 2.0 * Math.PI;
6351          endAngle = 3.14;
6352          circ = Math.PI;
6353          quart = Math.PI / 0.996;
6354        } else if (type == 'angle') {
6355          startAngle = 2.25 * Math.PI;
6356          endAngle = 2.4;
6357          circ = 1.53 + Math.PI;
6358          quart = 0.73 + Math.PI / 0.996;
6359        }
6360      }
6361
6362      /**
6363             * adds text to circle
6364             *
6365             * @param obj
6366             * @param cssClass
6367             * @param lineHeight
6368             */
6369      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
6370      function addCircleText(obj, cssClass, lineHeight) {
6371        opticStats("<span></span>")
6372          .appendTo(obj)
6373          .addClass(cssClass)
6374          .html(text)
6375          .prepend(icon)
6376          .css({
6377          //'line-height': lineHeight + 'px',
6378          'font-size': customSettingsObj.fontsize + 'px',
6379          'line-height': customSettingsObj.fontsize + 'px'
6380        });
6381      }
6382
6383      /**
6384             * adds info text to circle
6385             *
6386             * @param obj
6387             * @param factor
6388             */
6389      function addInfoText(obj, factor) {
6390        opticStats('<span></span>')
6391          .appendTo(obj)
6392          .addClass('circle-info-half')
6393        //.css(
6394        //'line-height', (customSettingsObj.dimension * factor) + 'px'
6395        //)
6396          .text(info);
6397      }
6398
6399      /**
6400             * checks which data attributes are defined
6401             * @param obj
6402             */
6403      function checkDataAttributes(obj) {
6404        opticStats.each(customSettings, function (index, attribute) {
6405          if (obj.data(attribute) != undefined) {
6406            customSettingsObj[attribute] = obj.data(attribute);
6407          } else {
6408            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
6409          }
6410
6411          if (attribute == 'fill' && obj.data('fill') != undefined) {
6412            fill = true;
6413          }
6414        });
6415      }
6416
6417      //Animation Variables
6418      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
6419      // ---------------------- //
6420      // Animation Functions
6421      // ---------------------- //
6422      function blend(inColor,outColor,current){
6423        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
6424            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
6425            r,g,b,a,cur;
6426        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
6427        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
6428        if(current < .5 ) {
6429          cur = current*2;
6430          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
6431          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
6432          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
6433        } else {
6434          cur = (current-.5)*2;
6435          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
6436          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
6437          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
6438        }
6439        var a = inColors[3]+((outColors[3] - inColors[3])*current);
6440        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
6441      }
6442      if (type == 'line' || type == 'vert-line') {
6443        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
6444      }
6445      var increaseInc = function(inc, current) {
6446        if (current >= 1) {
6447          //          slowTheInc += 0.00002;
6448          //          slowTheInc = Math.min(slowTheInc, 0.005);
6449          //          inc = inc + (0.005-slowTheInc);
6450        } else {
6451          inc += 0.005;
6452        }
6453        return inc;
6454      }
6455      var moveColors = function(value, inc) {
6456        var pos = value+inc;
6457        pos = pos.toString();
6458        pos = pos.split(".").pop();
6459        pos = parseFloat("."+pos);
6460        return pos;
6461      }
6462      var createGrad = function(inc,sizeX, sizeY) {
6463        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
6464        grd.addColorStop(moveColors(0, inc),"#FF0000");
6465        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
6466        grd.addColorStop(moveColors(.2, inc),"#00FF00");
6467        grd.addColorStop(moveColors(.3, inc),"#0000FF");
6468        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
6469        grd.addColorStop(moveColors(.5, inc),"#FF0000");
6470        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
6471        grd.addColorStop(moveColors(.7, inc),"#00FF00");
6472        grd.addColorStop(moveColors(.8, inc),"#0000FF");
6473        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
6474        grd.addColorStop(moveColors(1, inc),"#FF0000");
6475        return grd;
6476      }
6477      var shadowGlow = function() {
6478        context.shadowColor = customSettingsObj.fgcolor;
6479        context.shadowOffsetX = 0;
6480        context.shadowOffsetY = 0;
6481        context.shadowBlur = 10;
6482      }
6483      var drawBorder = function() {
6484        context.lineWidth = customSettingsObj.bordersize + 1;
6485        context.strokeStyle = customSettingsObj.bgcolor;
6486        context.stroke();
6487        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
6488          //
6489        } else {
6490          context.fillStyle = customSettingsObj.fill;
6491          context.fill();
6492        }
6493        context.beginPath();
6494        context.save();
6495      }
6496      var fillAnimation = function(animationType, current) {
6497        if(animationType == 1){
6498          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
6499          context.stroke();
6500        } else if(animationType == 2){
6501          context.strokeStyle = customSettingsObj.fgcolor;
6502          if (type == 'line') {
6503            var grd=context.createLinearGradient(sizeX,0,0,0);
6504            grd.addColorStop(0,"white");
6505            grd.addColorStop(1,customSettingsObj.fgcolor);
6506            context.strokeStyle = grd;
6507            shadowGlow();
6508          } else if (type == 'vert-line') {
6509            var grd=context.createLinearGradient(0,0,0,sizeY);
6510            grd.addColorStop(0,"white");
6511            grd.addColorStop(1,customSettingsObj.fgcolor);
6512            context.strokeStyle = grd;
6513            shadowGlow();
6514          } else {
6515            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
6516            grd.addColorStop(0, customSettingsObj.fgcolor);
6517            grd.addColorStop(0.5, 'white');
6518            grd.addColorStop(1, customSettingsObj.fgcolor);
6519            context.strokeStyle = grd;
6520            shadowGlow();
6521          }
6522          context.stroke();
6523          context.restore();
6524        } else if(animationType == 3){
6525          if (type == 'line') {
6526            var grd = createGrad(inc,sizeX,sizeY);
6527            inc = increaseInc(inc,current);
6528            context.strokeStyle = grd;
6529          } else if (type == 'vert-line') {
6530            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
6531            grd.addColorStop(moveColors(0, inc),"#FF0000");
6532            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
6533            grd.addColorStop(moveColors(.2, inc),"#00FF00");
6534            grd.addColorStop(moveColors(.3, inc),"#0000FF");
6535            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
6536            grd.addColorStop(moveColors(.5, inc),"#FF0000");
6537            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
6538            grd.addColorStop(moveColors(.7, inc),"#00FF00");
6539            grd.addColorStop(moveColors(.8, inc),"#0000FF");
6540            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
6541            grd.addColorStop(moveColors(1, inc),"#FF0000");
6542            inc = increaseInc(inc,current);
6543            context.strokeStyle = grd;
6544          } else {
6545            var grd = createGrad(inc,sizeX,sizeY);
6546            inc = increaseInc(inc,current);
6547            context.strokeStyle = grd;
6548          }
6549          context.stroke();
6550          context.restore();
6551        } else {
6552          context.strokeStyle = customSettingsObj.fgcolor;
6553          context.stroke();
6554        }
6555      }
6556      // ---------------------- //
6557      // Animation
6558      // ---------------------- //
6559      function animate(current) {
6560        //Clear Canvas for next frame
6561        context.clearRect(0, 0, canvas.width, canvas.height);
6562        //Draw Background
6563        if (type == 'line' || type == 'vert-line') {
6564          context.rect(10, 10, sizeX-20, sizeY-20);
6565        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
6566          context.beginPath();
6567          context.arc(x, y, radius, endAngle, startAngle, false);
6568        }
6569        context.fillStyle = customSettingsObj.fill;
6570        context.fill();
6571        if (type == 'line') {
6572          context.beginPath();
6573          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
6574          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
6575          drawBorder();
6576          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
6577          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
6578          fillAnimation(animationType,current);
6579        } else if (type == 'vert-line'){
6580          context.beginPath();
6581          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
6582          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
6583          drawBorder();
6584          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
6585          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
6586          fillAnimation(animationType,current);
6587        } else if (type == 'full' || type=='half') {
6588          drawBorder();
6589          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
6590          fillAnimation(animationType,current);
6591        } else if (type == 'grow-circle') {
6592          drawBorder();
6593          var fillRadius = sizeX/2.5*Math.min(current,1);
6594          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
6595          if(animationType == 1){
6596            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
6597            context.fill();
6598          } else if(animationType == 2){
6599            var grd=context.createLinearGradient(0,0,0,sizeY);
6600            grd.addColorStop(0,"white");
6601            grd.addColorStop(1,customSettingsObj.fgcolor);
6602            shadowGlow();
6603            context.fillStyle = grd;
6604            context.fill();
6605          } else if(animationType == 3){
6606            var grd = createGrad(inc,sizeX,sizeY);
6607            inc = increaseInc(inc,current);
6608            context.fillStyle = grd;
6609            context.fill();
6610          } else {
6611            context.fillStyle = customSettingsObj.fgcolor;
6612            context.fill();
6613          }
6614          context.restore();
6615        } else if (type == 'fill-circle') {
6616          drawBorder();
6617          var fillRadius = sizeX/2.5,
6618              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
6619          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
6620          if(animationType == 1){
6621            context.clip();
6622            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
6623            context.fillRect(0, fillLine, sizeX, sizeY);
6624          } else if(animationType == 2){
6625            var grd=context.createLinearGradient(0,0,0,sizeY);
6626            grd.addColorStop(0,"white");
6627            grd.addColorStop(1,customSettingsObj.fgcolor);
6628            shadowGlow();
6629            context.clip();
6630            context.fillStyle = grd;
6631            context.fillRect(0, fillLine, sizeX, sizeY);
6632
6633          } else if(animationType == 3){
6634            context.clip();
6635            var grd = createGrad(inc,sizeX, sizeY);
6636            inc = increaseInc(inc,current);
6637            context.fillStyle = grd;
6638            context.fillRect(0, fillLine, sizeX, sizeY);
6639          } else {
6640            context.clip();
6641            context.fillStyle = customSettingsObj.fgcolor;
6642            context.fillRect(0, fillLine, sizeX, sizeY);
6643          }
6644          context.restore();
6645        } else if (type == 'fill-circle-wave') {
6646          drawBorder();
6647          var fillRadius = sizeX/2.5,
6648              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
6649          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
6650          var ypos=fillLine, xpos=0;
6651          counter += .1;
6652          counterLoop = counter;
6653          var increase = 2*Math.PI / 12;
6654          context.clip();
6655          context.beginPath();
6656          context.moveTo(sizeX,sizeY);
6657          context.lineTo(0,sizeY);
6658          context.lineTo(0,ypos);
6659          if (curPerc > endPercent) {
6660            calm-=.01;
6661            if(calm<0) calm=0;
6662          }
6663          for(i=0; i<=sizeX; i+=10){
6664            xpos = i;
6665            ypos =  ypos - Math.sin(counterLoop) * calm;
6666            counterLoop += increase;
6667            context.lineTo(xpos,ypos);
6668          }
6669          context.lineTo(sizeX,sizeY);
6670          context.closePath();
6671          if(animationType == 1){
6672            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
6673            context.fill();
6674          } else if(animationType == 2){
6675            var grd=context.createLinearGradient(0,0,0,sizeY);
6676            grd.addColorStop(0,"white");
6677            grd.addColorStop(1,customSettingsObj.fgcolor);
6678            shadowGlow();
6679            context.clip();
6680            context.fillStyle = grd;
6681            context.fill();
6682          } else if(animationType == 3){
6683            context.clip();
6684            var grd = createGrad(inc,sizeX,sizeY);
6685            inc = increaseInc(inc,current);
6686            context.fillStyle = grd;
6687            context.fill();
6688          } else {
6689            context.clip();
6690            context.fillStyle = customSettingsObj.fgcolor;
6691            context.fill();
6692          }
6693          context.restore();
6694        }
6695
6696        if (curPerc < endPercent) {
6697          curPerc += curStep;
6698          requestAnimationFrame(function () {
6699            context.strokeStyle = customSettingsObj.fgcolor;
6700            animate(Math.min(curPerc, endPercent) / 100);
6701          }, obj);
6702        } else if(finishFrames < 500) {
6703          curPerc += curStep;
6704          finishFrames+=1;
6705          requestAnimationFrame(function () {
6706            context.strokeStyle = customSettingsObj.fgcolor;
6707            animate(Math.min(curPerc, endPercent) / 100);
6708          }, obj);
6709        }
6710
6711        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
6712          if (opticStats.isFunction(options.complete)) {
6713            options.complete();
6714
6715            fireCallback = false;
6716          }
6717        }
6718      }
6719      obj.waypoint(function(direction){
6720        animate(curPerc / 100);
6721        this.destroy();
6722      }, { offset: '100%' });
6723    });
6724  };
6725}(opticStats));
6726/*
6727 The MIT License (MIT)
6728 CountUp
6729+Copyright (c) 2014-2015 Jamie Perkins
6730 Permission is hereby granted, free of charge, to any person obtaining a copy of
6731 this software and associated documentation files (the "Software"), to deal in
6732*/
6733!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
6734/*!
6735Waypoints - 4.0.0
6736Copyright © 2011-2015 Caleb Troughton
6737Licensed under the MIT license.
6738https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6739*/
6740!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");
vendor: 6,526 bytes, line 6740
6740this.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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
6740ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
6741
6742opticStats( document ).ready(function() {
6743  var speed =  3000,
6744      countNumberstacks_in_33328 = "36",
6745      decimalNumber = '0',
6746      decimalNumber = decimalNumber.replace(/\D/g,''),
6747      decimalLength = decimalNumber.length,
6748      maxValuePercentstacks_in_33328 = (countNumberstacks_in_33328/36),
6749      speedA = (2000/speed)*maxValuePercentstacks_in_33328;
6750  if (36 == 0) {
6751    if(countNumberstacks_in_33328 < 0) {
6752      maxValuePercentstacks_in_33328 = 1;
6753    } else {
6754      maxValuePercentstacks_in_33328 = (0-countNumberstacks_in_33328)/0;
6755    }
6756  }
6757  if('False' == 'False' ) {
6758     decimalLength = 0;
6759  } else {
6760    countNumberstacks_in_33328 = countNumberstacks_in_33328.replace(/\D/g,'');
6761    countNumberstacks_in_33328 = countNumberstacks_in_33328+"."+decimalNumber;
6762  }
6763  if('False' == 'True' ) {
6764    var items = readData_data(opticStats("#data"));
6765    countNumberstacks_in_33328 = items['data-A1'];
6766    if(countNumberstacks_in_33328 ==  null) {
6767      countNumberstacks_in_33328 = '0';
6768    }
6769    opticStats("#stat_stacks_in_33328").data("percent", maxValuePercentstacks_in_33328*100);
6770    //
6771    //
6772    if(countNumberstacks_in_33328.indexOf(".") !== -1) {
6773      decimalNumber = countNumberstacks_in_33328.substr(countNumberstacks_in_33328.indexOf(".") + 1);
6774      decimalNumber = decimalNumber.replace(/\D/g,'');
6775      decimalLength = decimalNumber.length;
6776      countNumberstacks_in_33328 = countNumberstacks_in_33328.substr(0, countNumberstacks_in_33328.indexOf('.'));
6777    }
6778    //
6779    //
6780    countNumberstacks_in_33328 = countNumberstacks_in_33328.replace(/[^0-9\-]/g,'');
6781    countNumberstacks_in_33328 = countNumberstacks_in_33328+"."+decimalNumber;
6782    maxValuePercentstacks_in_33328 = (countNumberstacks_in_33328/36);
6783    if (36 == 0) {
6784      if(countNumberstacks_in_33328 < 0) {
6785        maxValuePercentstacks_in_33328 = 1;
6786      } else {
6787        maxValuePercentstacks_in_33328 = (0-countNumberstacks_in_33328)/0;
6788      }
6789    }
6790    speedA = (2000/speed)*maxValuePercentstacks_in_33328;
6791    opticStats("#stat_stacks_in_33328").data("percent", maxValuePercentstacks_in_33328*100);
6792  } else {
6793    var maxValuePercentstacks_in_33328 = (countNumberstacks_in_33328/36);
6794    if (36 == 0) {
6795      if(countNumberstacks_in_33328 < 0) {
6796        maxValuePercentstacks_in_33328 = 1;
6797      } else {
6798        maxValuePercentstacks_in_33328 = (0-countNumberstacks_in_33328)/0;
6799      }
6800    }
6801    speedA = (2000/speed)*maxValuePercentstacks_in_33328;
6802    opticStats("#stat_stacks_in_33328").data("percent", maxValuePercentstacks_in_33328*100);
6803  }
6804  opticStats('#stat_stacks_in_33328').attr("data-animationstep", speedA);
6805  opticStats('#stat_stacks_in_33328').circliful();
6806  opticStats('#stat_stacks_in_33328').waypoint(function(direction){
6807
6808  //
6809//  opticStats('#stacks_in_33328 .counter').counterUp({
6810//    delay: 10,
6811//    time: speed
6812//  });
6813
6814    var options = {
6815      //
6816      useGrouping : false,
6817      //
6818      //
6819      separator : ',',
6820      decimal : '.',
6821      //
6822      //
6823      //
6824      useEasing : false
6825    };
6826    opticStats('#stacks_in_33328 .counter').attr("id", "count_stacks_in_33328");
6827    var count = new CountUp('count_stacks_in_33328', 0, countNumberstacks_in_33328, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33328), options);//(1.75/speedA)*(maxValuePercentstacks_in_33328)
6828    count.start();
6829    //
6830    //
6831    opticStats('#stat_stacks_in_33328 .circle-text').append("");
6832    opticStats('#stat_stacks_in_33328 .circle-text-half').append("");
6833    //
6834    //
6835    //
6836    //
6837    opticStats('#stat_stacks_in_33328 span > .osIcon').wrap("<div class='os-icon-wrap' />")
6838    opticStats('#stat_stacks_in_33328 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33328 .centerMe > div > span:first-child'));
6839    //
6840    //
6841    scale();
6842    this.destroy();
6843  }, { offset: '100%' });
6844
6845
6846});
6847
6848opticStats( window ).resize(function() {
6849  scale();
6850});
6851function scale() {
6852  var width = 290,
6853      currentWidth = opticStats('#stat_stacks_in_33328').parent().outerWidth();
6854  if(currentWidth < width) {
6855    var scale = currentWidth/width;
6856    opticStats('#stat_stacks_in_33328').css({
6857      "transform" : "scale("+scale+")",
6858      "transform-origin" : "0px",
6859      "-o-transform" : "scale("+scale+")",
6860      "-o-transform-origin" : "0px"
6861    });
6862  } else {
6863    opticStats('#stat_stacks_in_33328').css({
6864      "transform" : "scale(1)",
6865      "-o-transform" : "scale(1)"
6866    });
6867  }
6868}
6869
6870return stack;})(stacks.stacks_in_33328);
6871stacks.stacks_in_33330 = {};
6872stacks.stacks_in_33330 = (function(stack) {
6873
6874return stack;})(stacks.stacks_in_33330);
6875stacks.stacks_in_33336 = {};
6876stacks.stacks_in_33336 = (function(stack) {
6877var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
6878/*
6879jquery-plugin-circliful
6880+The MIT License (MIT)
6881+
6882+Copyright (c) 2014 Patric Gutersohn
6883+
6884+Permission is hereby granted, free of charge, to any person obtaining a copy of
6885+this software and associated documentation files (the "Software"), to deal in
6886+the Software without restriction, including without limitation the rights to
6887+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
6888+the Software, and to permit persons to whom the Software is furnished to do so,
6889+subject to the following conditions:
6890+
6891+The above copyright notice and this permission notice shall be included in all
6892+copies or substantial portions of the Software.
6893+
6894+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6895+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
6896+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
6897+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
6898+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
6899+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
6900*/
6901"use strict";
6902
6903(function (opticStats) {
6904
6905  opticStats.fn.circliful = function (options, callback) {
6906
6907    var settings = opticStats.extend({
6908      // These are the defaults.
6909      startdegree: 0,
6910      fgcolor: "#556b2f",
6911      bgcolor: "#eee",
6912      fill: false,
6913      width: 15,
6914      dimension: 200,
6915      fontsize: 15,
6916      percent: 50,
6917      animationstep: 1.0,
6918      iconsize: '20px',
6919      iconcolor: '#999',
6920      border: 'default',
6921      complete: null,
6922      bordersize: 10
6923    }, options);
6924
6925    return this.each(function () {
6926
6927      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
6928
6929      var customSettingsObj = {};
6930      var icon = '';
6931      var percent;
6932      var endPercent = 0;
6933      var obj = opticStats(this);
6934      var fill = false;
6935      var text, info;
6936
6937      obj.addClass('circliful');
6938
6939      checkDataAttributes(obj);
6940
6941      if (obj.data('text') != undefined) {
6942
6943        //remove non number characters
6944
6945        text = obj.data('text');
6946        text = text.toString();
6947        text = text.replace(/[^0-9.,]/g, '');
6948        text = "<span class='counter'>" + text + "</span>";
6949
6950        if (obj.data('icon') != undefined) {
6951          icon = opticStats('<i></i>')
6952            .addClass('osIcon fa ' + opticStats(this).data('icon'))
6953            .css({
6954            'color': customSettingsObj.iconcolor,
6955            'font-size': customSettingsObj.iconsize,
6956            'line-height': customSettingsObj.iconsize + "px"
6957          });
6958        }
6959        if (obj.data('icon-custom') != undefined) {
6960          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
6961            .addClass('osIcon ')
6962            .css({
6963            'width': customSettingsObj.iconsize,
6964            'height': customSettingsObj.iconsize
6965          });
6966        }
6967
6968        if (obj.data('type') != undefined) {
6969          type = opticStats(this).data('type');
6970
6971          if (type == 'half') {
6972            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
6973          } else {
6974            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
6975          }
6976        } else {
6977          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
6978        }
6979      }
6980
6981      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
6982        var total = opticStats(this).data("total") / 100;
6983
6984        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
6985        endPercent = (opticStats(this).data("part") / total).toFixed(3);
6986      } else {
6987        if (opticStats(this).data("percent") != undefined) {
6988          percent = opticStats(this).data("percent") / 100;
6989          endPercent = opticStats(this).data("percent");
6990        } else {
6991          percent = settings.percent / 100;
6992        }
6993      }
6994
6995      if (opticStats(this).data('info') != undefined) {
6996        info = opticStats(this).data('info');
6997
6998        if (opticStats(this).data('type') != undefined) {
6999          type = opticStats(this).data('type');
7000
7001          if (type == 'half') {
7002            addInfoText(obj, 0.9);
7003          } else {
7004            addInfoText(obj, 1.25);
7005          }
7006        } else {
7007          addInfoText(obj, 1.25);
7008        }
7009      }
7010
7011      opticStats(this).width(customSettingsObj.dimension + 'px');
7012      if (type == 'line' || type == 'vert-line') {
7013        opticStats(this).height(opticStats(this).data('height') + 'px');
7014      } else {
7015        opticStats(this).height(customSettingsObj.dimension + 'px');
7016      }
7017
7018
7019      var sizeX = customSettingsObj.dimension,
7020          sizeY = customSettingsObj.dimension;
7021      if (type == 'line' || type == 'vert-line') {
7022        sizeY = opticStats(this).data('height');
7023      }
7024      var canvas = opticStats('<canvas></canvas>').attr({
7025        width: sizeX,
7026        height: sizeY
7027      }).appendTo(opticStats(this)).get(0);
7028      var context = canvas.getContext('2d');
7029
7030      var dpr = window.devicePixelRatio;
7031      if ( dpr ) {
7032        var opticStatscanvas = opticStats(canvas);
7033        opticStatscanvas.css('width', sizeX);
7034        opticStatscanvas.css('height', sizeY);
7035        opticStatscanvas.attr('width', sizeX * dpr);
7036        opticStatscanvas.attr('height', sizeY * dpr);
7037
7038        context.scale(dpr, dpr);
7039      }
7040
7041      var container = opticStats(canvas).parent();
7042      var x = sizeX / 2;
7043      var y = sizeY / 2;
7044      var degrees = customSettingsObj.percent * 360.0;
7045      var radians = degrees * (Math.PI / 180);
7046      var radius = sizeX / 2.5;
7047      var startAngle = 2.3 * Math.PI;
7048      var endAngle = 0;
7049      var counterClockwise = false;
7050      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
7051      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
7052      var circ = Math.PI * 2;
7053      var quart = Math.PI / 2;
7054      var type = '';
7055      var fireCallback = true;
7056      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
7057
7058      if (opticStats(this).data('type') != undefined) {
7059        type = opticStats(this).data('type');
7060        if (type == 'half') {
7061          startAngle = 2.0 * Math.PI;
7062          endAngle = 3.14;
7063          circ = Math.PI;
7064          quart = Math.PI / 0.996;
7065        } else if (type == 'angle') {
7066          startAngle = 2.25 * Math.PI;
7067          endAngle = 2.4;
7068          circ = 1.53 + Math.PI;
7069          quart = 0.73 + Math.PI / 0.996;
7070        }
7071      }
7072
7073      /**
7074             * adds text to circle
7075             *
7076             * @param obj
7077             * @param cssClass
7078             * @param lineHeight
7079             */
7080      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
7081      function addCircleText(obj, cssClass, lineHeight) {
7082        opticStats("<span></span>")
7083          .appendTo(obj)
7084          .addClass(cssClass)
7085          .html(text)
7086          .prepend(icon)
7087          .css({
7088          //'line-height': lineHeight + 'px',
7089          'font-size': customSettingsObj.fontsize + 'px',
7090          'line-height': customSettingsObj.fontsize + 'px'
7091        });
7092      }
7093
7094      /**
7095             * adds info text to circle
7096             *
7097             * @param obj
7098             * @param factor
7099             */
7100      function addInfoText(obj, factor) {
7101        opticStats('<span></span>')
7102          .appendTo(obj)
7103          .addClass('circle-info-half')
7104        //.css(
7105        //'line-height', (customSettingsObj.dimension * factor) + 'px'
7106        //)
7107          .text(info);
7108      }
7109
7110      /**
7111             * checks which data attributes are defined
7112             * @param obj
7113             */
7114      function checkDataAttributes(obj) {
7115        opticStats.each(customSettings, function (index, attribute) {
7116          if (obj.data(attribute) != undefined) {
7117            customSettingsObj[attribute] = obj.data(attribute);
7118          } else {
7119            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
7120          }
7121
7122          if (attribute == 'fill' && obj.data('fill') != undefined) {
7123            fill = true;
7124          }
7125        });
7126      }
7127
7128      //Animation Variables
7129      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
7130      // ---------------------- //
7131      // Animation Functions
7132      // ---------------------- //
7133      function blend(inColor,outColor,current){
7134        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
7135            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
7136            r,g,b,a,cur;
7137        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
7138        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
7139        if(current < .5 ) {
7140          cur = current*2;
7141          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
7142          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
7143          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
7144        } else {
7145          cur = (current-.5)*2;
7146          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
7147          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
7148          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
7149        }
7150        var a = inColors[3]+((outColors[3] - inColors[3])*current);
7151        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
7152      }
7153      if (type == 'line' || type == 'vert-line') {
7154        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
7155      }
7156      var increaseInc = function(inc, current) {
7157        if (current >= 1) {
7158          //          slowTheInc += 0.00002;
7159          //          slowTheInc = Math.min(slowTheInc, 0.005);
7160          //          inc = inc + (0.005-slowTheInc);
7161        } else {
7162          inc += 0.005;
7163        }
7164        return inc;
7165      }
7166      var moveColors = function(value, inc) {
7167        var pos = value+inc;
7168        pos = pos.toString();
7169        pos = pos.split(".").pop();
7170        pos = parseFloat("."+pos);
7171        return pos;
7172      }
7173      var createGrad = function(inc,sizeX, sizeY) {
7174        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
7175        grd.addColorStop(moveColors(0, inc),"#FF0000");
7176        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
7177        grd.addColorStop(moveColors(.2, inc),"#00FF00");
7178        grd.addColorStop(moveColors(.3, inc),"#0000FF");
7179        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
7180        grd.addColorStop(moveColors(.5, inc),"#FF0000");
7181        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
7182        grd.addColorStop(moveColors(.7, inc),"#00FF00");
7183        grd.addColorStop(moveColors(.8, inc),"#0000FF");
7184        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
7185        grd.addColorStop(moveColors(1, inc),"#FF0000");
7186        return grd;
7187      }
7188      var shadowGlow = function() {
7189        context.shadowColor = customSettingsObj.fgcolor;
7190        context.shadowOffsetX = 0;
7191        context.shadowOffsetY = 0;
7192        context.shadowBlur = 10;
7193      }
7194      var drawBorder = function() {
7195        context.lineWidth = customSettingsObj.bordersize + 1;
7196        context.strokeStyle = customSettingsObj.bgcolor;
7197        context.stroke();
7198        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
7199          //
7200        } else {
7201          context.fillStyle = customSettingsObj.fill;
7202          context.fill();
7203        }
7204        context.beginPath();
7205        context.save();
7206      }
7207      var fillAnimation = function(animationType, current) {
7208        if(animationType == 1){
7209          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
7210          context.stroke();
7211        } else if(animationType == 2){
7212          context.strokeStyle = customSettingsObj.fgcolor;
7213          if (type == 'line') {
7214            var grd=context.createLinearGradient(sizeX,0,0,0);
7215            grd.addColorStop(0,"white");
7216            grd.addColorStop(1,customSettingsObj.fgcolor);
7217            context.strokeStyle = grd;
7218            shadowGlow();
7219          } else if (type == 'vert-line') {
7220            var grd=context.createLinearGradient(0,0,0,sizeY);
7221            grd.addColorStop(0,"white");
7222            grd.addColorStop(1,customSettingsObj.fgcolor);
7223            context.strokeStyle = grd;
7224            shadowGlow();
7225          } else {
7226            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
7227            grd.addColorStop(0, customSettingsObj.fgcolor);
7228            grd.addColorStop(0.5, 'white');
7229            grd.addColorStop(1, customSettingsObj.fgcolor);
7230            context.strokeStyle = grd;
7231            shadowGlow();
7232          }
7233          context.stroke();
7234          context.restore();
7235        } else if(animationType == 3){
7236          if (type == 'line') {
7237            var grd = createGrad(inc,sizeX,sizeY);
7238            inc = increaseInc(inc,current);
7239            context.strokeStyle = grd;
7240          } else if (type == 'vert-line') {
7241            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
7242            grd.addColorStop(moveColors(0, inc),"#FF0000");
7243            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
7244            grd.addColorStop(moveColors(.2, inc),"#00FF00");
7245            grd.addColorStop(moveColors(.3, inc),"#0000FF");
7246            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
7247            grd.addColorStop(moveColors(.5, inc),"#FF0000");
7248            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
7249            grd.addColorStop(moveColors(.7, inc),"#00FF00");
7250            grd.addColorStop(moveColors(.8, inc),"#0000FF");
7251            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
7252            grd.addColorStop(moveColors(1, inc),"#FF0000");
7253            inc = increaseInc(inc,current);
7254            context.strokeStyle = grd;
7255          } else {
7256            var grd = createGrad(inc,sizeX,sizeY);
7257            inc = increaseInc(inc,current);
7258            context.strokeStyle = grd;
7259          }
7260          context.stroke();
7261          context.restore();
7262        } else {
7263          context.strokeStyle = customSettingsObj.fgcolor;
7264          context.stroke();
7265        }
7266      }
7267      // ---------------------- //
7268      // Animation
7269      // ---------------------- //
7270      function animate(current) {
7271        //Clear Canvas for next frame
7272        context.clearRect(0, 0, canvas.width, canvas.height);
7273        //Draw Background
7274        if (type == 'line' || type == 'vert-line') {
7275          context.rect(10, 10, sizeX-20, sizeY-20);
7276        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
7277          context.beginPath();
7278          context.arc(x, y, radius, endAngle, startAngle, false);
7279        }
7280        context.fillStyle = customSettingsObj.fill;
7281        context.fill();
7282        if (type == 'line') {
7283          context.beginPath();
7284          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
7285          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
7286          drawBorder();
7287          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
7288          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
7289          fillAnimation(animationType,current);
7290        } else if (type == 'vert-line'){
7291          context.beginPath();
7292          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
7293          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
7294          drawBorder();
7295          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
7296          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
7297          fillAnimation(animationType,current);
7298        } else if (type == 'full' || type=='half') {
7299          drawBorder();
7300          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
7301          fillAnimation(animationType,current);
7302        } else if (type == 'grow-circle') {
7303          drawBorder();
7304          var fillRadius = sizeX/2.5*Math.min(current,1);
7305          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
7306          if(animationType == 1){
7307            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
7308            context.fill();
7309          } else if(animationType == 2){
7310            var grd=context.createLinearGradient(0,0,0,sizeY);
7311            grd.addColorStop(0,"white");
7312            grd.addColorStop(1,customSettingsObj.fgcolor);
7313            shadowGlow();
7314            context.fillStyle = grd;
7315            context.fill();
7316          } else if(animationType == 3){
7317            var grd = createGrad(inc,sizeX,sizeY);
7318            inc = increaseInc(inc,current);
7319            context.fillStyle = grd;
7320            context.fill();
7321          } else {
7322            context.fillStyle = customSettingsObj.fgcolor;
7323            context.fill();
7324          }
7325          context.restore();
7326        } else if (type == 'fill-circle') {
7327          drawBorder();
7328          var fillRadius = sizeX/2.5,
7329              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
7330          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
7331          if(animationType == 1){
7332            context.clip();
7333            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
7334            context.fillRect(0, fillLine, sizeX, sizeY);
7335          } else if(animationType == 2){
7336            var grd=context.createLinearGradient(0,0,0,sizeY);
7337            grd.addColorStop(0,"white");
7338            grd.addColorStop(1,customSettingsObj.fgcolor);
7339            shadowGlow();
7340            context.clip();
7341            context.fillStyle = grd;
7342            context.fillRect(0, fillLine, sizeX, sizeY);
7343
7344          } else if(animationType == 3){
7345            context.clip();
7346            var grd = createGrad(inc,sizeX, sizeY);
7347            inc = increaseInc(inc,current);
7348            context.fillStyle = grd;
7349            context.fillRect(0, fillLine, sizeX, sizeY);
7350          } else {
7351            context.clip();
7352            context.fillStyle = customSettingsObj.fgcolor;
7353            context.fillRect(0, fillLine, sizeX, sizeY);
7354          }
7355          context.restore();
7356        } else if (type == 'fill-circle-wave') {
7357          drawBorder();
7358          var fillRadius = sizeX/2.5,
7359              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
7360          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
7361          var ypos=fillLine, xpos=0;
7362          counter += .1;
7363          counterLoop = counter;
7364          var increase = 2*Math.PI / 12;
7365          context.clip();
7366          context.beginPath();
7367          context.moveTo(sizeX,sizeY);
7368          context.lineTo(0,sizeY);
7369          context.lineTo(0,ypos);
7370          if (curPerc > endPercent) {
7371            calm-=.01;
7372            if(calm<0) calm=0;
7373          }
7374          for(i=0; i<=sizeX; i+=10){
7375            xpos = i;
7376            ypos =  ypos - Math.sin(counterLoop) * calm;
7377            counterLoop += increase;
7378            context.lineTo(xpos,ypos);
7379          }
7380          context.lineTo(sizeX,sizeY);
7381          context.closePath();
7382          if(animationType == 1){
7383            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
7384            context.fill();
7385          } else if(animationType == 2){
7386            var grd=context.createLinearGradient(0,0,0,sizeY);
7387            grd.addColorStop(0,"white");
7388            grd.addColorStop(1,customSettingsObj.fgcolor);
7389            shadowGlow();
7390            context.clip();
7391            context.fillStyle = grd;
7392            context.fill();
7393          } else if(animationType == 3){
7394            context.clip();
7395            var grd = createGrad(inc,sizeX,sizeY);
7396            inc = increaseInc(inc,current);
7397            context.fillStyle = grd;
7398            context.fill();
7399          } else {
7400            context.clip();
7401            context.fillStyle = customSettingsObj.fgcolor;
7402            context.fill();
7403          }
7404          context.restore();
7405        }
7406
7407        if (curPerc < endPercent) {
7408          curPerc += curStep;
7409          requestAnimationFrame(function () {
7410            context.strokeStyle = customSettingsObj.fgcolor;
7411            animate(Math.min(curPerc, endPercent) / 100);
7412          }, obj);
7413        } else if(finishFrames < 500) {
7414          curPerc += curStep;
7415          finishFrames+=1;
7416          requestAnimationFrame(function () {
7417            context.strokeStyle = customSettingsObj.fgcolor;
7418            animate(Math.min(curPerc, endPercent) / 100);
7419          }, obj);
7420        }
7421
7422        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
7423          if (opticStats.isFunction(options.complete)) {
7424            options.complete();
7425
7426            fireCallback = false;
7427          }
7428        }
7429      }
7430      obj.waypoint(function(direction){
7431        animate(curPerc / 100);
7432        this.destroy();
7433      }, { offset: '100%' });
7434    });
7435  };
7436}(opticStats));
7437/*
7438 The MIT License (MIT)
7439 CountUp
7440+Copyright (c) 2014-2015 Jamie Perkins
7441 Permission is hereby granted, free of charge, to any person obtaining a copy of
7442 this software and associated documentation files (the "Software"), to deal in
7443*/
7444!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
7445/*!
7446Waypoints - 4.0.0
7447Copyright © 2011-2015 Caleb Troughton
7448Licensed under the MIT license.
7449https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
7450*/
7451!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");
vendor: 6,526 bytes, line 7451
7451this.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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
7451ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
7452
7453opticStats( document ).ready(function() {
7454  var speed =  3000,
7455      countNumberstacks_in_33336 = "1000",
7456      decimalNumber = '0',
7457      decimalNumber = decimalNumber.replace(/\D/g,''),
7458      decimalLength = decimalNumber.length,
7459      maxValuePercentstacks_in_33336 = (countNumberstacks_in_33336/1000),
7460      speedA = (2000/speed)*maxValuePercentstacks_in_33336;
7461  if (1000 == 0) {
7462    if(countNumberstacks_in_33336 < 0) {
7463      maxValuePercentstacks_in_33336 = 1;
7464    } else {
7465      maxValuePercentstacks_in_33336 = (0-countNumberstacks_in_33336)/0;
7466    }
7467  }
7468  if('False' == 'False' ) {
7469     decimalLength = 0;
7470  } else {
7471    countNumberstacks_in_33336 = countNumberstacks_in_33336.replace(/\D/g,'');
7472    countNumberstacks_in_33336 = countNumberstacks_in_33336+"."+decimalNumber;
7473  }
7474  if('False' == 'True' ) {
7475    var items = readData_data(opticStats("#data"));
7476    countNumberstacks_in_33336 = items['data-A1'];
7477    if(countNumberstacks_in_33336 ==  null) {
7478      countNumberstacks_in_33336 = '0';
7479    }
7480    opticStats("#stat_stacks_in_33336").data("percent", maxValuePercentstacks_in_33336*100);
7481    //
7482    //
7483    if(countNumberstacks_in_33336.indexOf(".") !== -1) {
7484      decimalNumber = countNumberstacks_in_33336.substr(countNumberstacks_in_33336.indexOf(".") + 1);
7485      decimalNumber = decimalNumber.replace(/\D/g,'');
7486      decimalLength = decimalNumber.length;
7487      countNumberstacks_in_33336 = countNumberstacks_in_33336.substr(0, countNumberstacks_in_33336.indexOf('.'));
7488    }
7489    //
7490    //
7491    countNumberstacks_in_33336 = countNumberstacks_in_33336.replace(/[^0-9\-]/g,'');
7492    countNumberstacks_in_33336 = countNumberstacks_in_33336+"."+decimalNumber;
7493    maxValuePercentstacks_in_33336 = (countNumberstacks_in_33336/1000);
7494    if (1000 == 0) {
7495      if(countNumberstacks_in_33336 < 0) {
7496        maxValuePercentstacks_in_33336 = 1;
7497      } else {
7498        maxValuePercentstacks_in_33336 = (0-countNumberstacks_in_33336)/0;
7499      }
7500    }
7501    speedA = (2000/speed)*maxValuePercentstacks_in_33336;
7502    opticStats("#stat_stacks_in_33336").data("percent", maxValuePercentstacks_in_33336*100);
7503  } else {
7504    var maxValuePercentstacks_in_33336 = (countNumberstacks_in_33336/1000);
7505    if (1000 == 0) {
7506      if(countNumberstacks_in_33336 < 0) {
7507        maxValuePercentstacks_in_33336 = 1;
7508      } else {
7509        maxValuePercentstacks_in_33336 = (0-countNumberstacks_in_33336)/0;
7510      }
7511    }
7512    speedA = (2000/speed)*maxValuePercentstacks_in_33336;
7513    opticStats("#stat_stacks_in_33336").data("percent", maxValuePercentstacks_in_33336*100);
7514  }
7515  opticStats('#stat_stacks_in_33336').attr("data-animationstep", speedA);
7516  opticStats('#stat_stacks_in_33336').circliful();
7517  opticStats('#stat_stacks_in_33336').waypoint(function(direction){
7518
7519  //
7520//  opticStats('#stacks_in_33336 .counter').counterUp({
7521//    delay: 10,
7522//    time: speed
7523//  });
7524
7525    var options = {
7526      //
7527      useGrouping : false,
7528      //
7529      //
7530      separator : ',',
7531      decimal : '.',
7532      //
7533      //
7534      //
7535      useEasing : false
7536    };
7537    opticStats('#stacks_in_33336 .counter').attr("id", "count_stacks_in_33336");
7538    var count = new CountUp('count_stacks_in_33336', 0, countNumberstacks_in_33336, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33336), options);//(1.75/speedA)*(maxValuePercentstacks_in_33336)
7539    count.start();
7540    //
7541    //
7542    opticStats('#stat_stacks_in_33336 .circle-text').append("+");
7543    opticStats('#stat_stacks_in_33336 .circle-text-half').append("+");
7544    //
7545    //
7546    //
7547    //
7548    opticStats('#stat_stacks_in_33336 span > .osIcon').wrap("<div class='os-icon-wrap' />")
7549    opticStats('#stat_stacks_in_33336 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33336 .centerMe > div > span:first-child'));
7550    //
7551    //
7552    scale();
7553    this.destroy();
7554  }, { offset: '100%' });
7555
7556
7557});
7558
7559opticStats( window ).resize(function() {
7560  scale();
7561});
7562function scale() {
7563  var width = 290,
7564      currentWidth = opticStats('#stat_stacks_in_33336').parent().outerWidth();
7565  if(currentWidth < width) {
7566    var scale = currentWidth/width;
7567    opticStats('#stat_stacks_in_33336').css({
7568      "transform" : "scale("+scale+")",
7569      "transform-origin" : "0px",
7570      "-o-transform" : "scale("+scale+")",
7571      "-o-transform-origin" : "0px"
7572    });
7573  } else {
7574    opticStats('#stat_stacks_in_33336').css({
7575      "transform" : "scale(1)",
7576      "-o-transform" : "scale(1)"
7577    });
7578  }
7579}
7580
7581return stack;})(stacks.stacks_in_33336);
7582stacks.stacks_in_33337 = {};
7583stacks.stacks_in_33337 = (function(stack) {
7584
7585return stack;})(stacks.stacks_in_33337);
7586stacks.stacks_in_33343 = {};
7587stacks.stacks_in_33343 = (function(stack) {
7588var jQuery = stacks.jQuery;var $ = jQuery;var opticStats = $;
7589/*
7590jquery-plugin-circliful
7591+The MIT License (MIT)
7592+
7593+Copyright (c) 2014 Patric Gutersohn
7594+
7595+Permission is hereby granted, free of charge, to any person obtaining a copy of
7596+this software and associated documentation files (the "Software"), to deal in
7597+the Software without restriction, including without limitation the rights to
7598+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7599+the Software, and to permit persons to whom the Software is furnished to do so,
7600+subject to the following conditions:
7601+
7602+The above copyright notice and this permission notice shall be included in all
7603+copies or substantial portions of the Software.
7604+
7605+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7606+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
7607+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
7608+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
7609+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
7610+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7611*/
7612"use strict";
7613
7614(function (opticStats) {
7615
7616  opticStats.fn.circliful = function (options, callback) {
7617
7618    var settings = opticStats.extend({
7619      // These are the defaults.
7620      startdegree: 0,
7621      fgcolor: "#556b2f",
7622      bgcolor: "#eee",
7623      fill: false,
7624      width: 15,
7625      dimension: 200,
7626      fontsize: 15,
7627      percent: 50,
7628      animationstep: 1.0,
7629      iconsize: '20px',
7630      iconcolor: '#999',
7631      border: 'default',
7632      complete: null,
7633      bordersize: 10
7634    }, options);
7635
7636    return this.each(function () {
7637
7638      var customSettings = ["fgcolor", "bgcolor", "fill", "width", "dimension", "fontsize", "animationstep", "endPercent", "icon", "iconcolor", "iconsize", "border", "startdegree", "bordersize"];
7639
7640      var customSettingsObj = {};
7641      var icon = '';
7642      var percent;
7643      var endPercent = 0;
7644      var obj = opticStats(this);
7645      var fill = false;
7646      var text, info;
7647
7648      obj.addClass('circliful');
7649
7650      checkDataAttributes(obj);
7651
7652      if (obj.data('text') != undefined) {
7653
7654        //remove non number characters
7655
7656        text = obj.data('text');
7657        text = text.toString();
7658        text = text.replace(/[^0-9.,]/g, '');
7659        text = "<span class='counter'>" + text + "</span>";
7660
7661        if (obj.data('icon') != undefined) {
7662          icon = opticStats('<i></i>')
7663            .addClass('osIcon fa ' + opticStats(this).data('icon'))
7664            .css({
7665            'color': customSettingsObj.iconcolor,
7666            'font-size': customSettingsObj.iconsize,
7667            'line-height': customSettingsObj.iconsize + "px"
7668          });
7669        }
7670        if (obj.data('icon-custom') != undefined) {
7671          icon = opticStats('<img src="'+opticStats(this).data("icon-custom")+'"></img>')
7672            .addClass('osIcon ')
7673            .css({
7674            'width': customSettingsObj.iconsize,
7675            'height': customSettingsObj.iconsize
7676          });
7677        }
7678
7679        if (obj.data('type') != undefined) {
7680          type = opticStats(this).data('type');
7681
7682          if (type == 'half') {
7683            addCircleText(obj, 'circle-text-half', (customSettingsObj.dimension / 1.45));
7684          } else {
7685            addCircleText(obj, 'circle-text', customSettingsObj.dimension);
7686          }
7687        } else {
7688          addCircleText(obj, 'circle-text', customSettingsObj.dimension);
7689        }
7690      }
7691
7692      if (opticStats(this).data("total") != undefined && opticStats(this).data("part") != undefined) {
7693        var total = opticStats(this).data("total") / 100;
7694
7695        percent = ((opticStats(this).data("part") / total) / 100).toFixed(3);
7696        endPercent = (opticStats(this).data("part") / total).toFixed(3);
7697      } else {
7698        if (opticStats(this).data("percent") != undefined) {
7699          percent = opticStats(this).data("percent") / 100;
7700          endPercent = opticStats(this).data("percent");
7701        } else {
7702          percent = settings.percent / 100;
7703        }
7704      }
7705
7706      if (opticStats(this).data('info') != undefined) {
7707        info = opticStats(this).data('info');
7708
7709        if (opticStats(this).data('type') != undefined) {
7710          type = opticStats(this).data('type');
7711
7712          if (type == 'half') {
7713            addInfoText(obj, 0.9);
7714          } else {
7715            addInfoText(obj, 1.25);
7716          }
7717        } else {
7718          addInfoText(obj, 1.25);
7719        }
7720      }
7721
7722      opticStats(this).width(customSettingsObj.dimension + 'px');
7723      if (type == 'line' || type == 'vert-line') {
7724        opticStats(this).height(opticStats(this).data('height') + 'px');
7725      } else {
7726        opticStats(this).height(customSettingsObj.dimension + 'px');
7727      }
7728
7729
7730      var sizeX = customSettingsObj.dimension,
7731          sizeY = customSettingsObj.dimension;
7732      if (type == 'line' || type == 'vert-line') {
7733        sizeY = opticStats(this).data('height');
7734      }
7735      var canvas = opticStats('<canvas></canvas>').attr({
7736        width: sizeX,
7737        height: sizeY
7738      }).appendTo(opticStats(this)).get(0);
7739      var context = canvas.getContext('2d');
7740
7741      var dpr = window.devicePixelRatio;
7742      if ( dpr ) {
7743        var opticStatscanvas = opticStats(canvas);
7744        opticStatscanvas.css('width', sizeX);
7745        opticStatscanvas.css('height', sizeY);
7746        opticStatscanvas.attr('width', sizeX * dpr);
7747        opticStatscanvas.attr('height', sizeY * dpr);
7748
7749        context.scale(dpr, dpr);
7750      }
7751
7752      var container = opticStats(canvas).parent();
7753      var x = sizeX / 2;
7754      var y = sizeY / 2;
7755      var degrees = customSettingsObj.percent * 360.0;
7756      var radians = degrees * (Math.PI / 180);
7757      var radius = sizeX / 2.5;
7758      var startAngle = 2.3 * Math.PI;
7759      var endAngle = 0;
7760      var counterClockwise = false;
7761      var curPerc = customSettingsObj.animationstep === 0.0 ? endPercent : 0.0;
7762      var curStep = Math.max(customSettingsObj.animationstep, 0.0);
7763      var circ = Math.PI * 2;
7764      var quart = Math.PI / 2;
7765      var type = '';
7766      var fireCallback = true;
7767      var additionalAngelPI = (customSettingsObj.startdegree / 180) * Math.PI;
7768
7769      if (opticStats(this).data('type') != undefined) {
7770        type = opticStats(this).data('type');
7771        if (type == 'half') {
7772          startAngle = 2.0 * Math.PI;
7773          endAngle = 3.14;
7774          circ = Math.PI;
7775          quart = Math.PI / 0.996;
7776        } else if (type == 'angle') {
7777          startAngle = 2.25 * Math.PI;
7778          endAngle = 2.4;
7779          circ = 1.53 + Math.PI;
7780          quart = 0.73 + Math.PI / 0.996;
7781        }
7782      }
7783
7784      /**
7785             * adds text to circle
7786             *
7787             * @param obj
7788             * @param cssClass
7789             * @param lineHeight
7790             */
7791      opticStats(" > span", this).wrapAll("<div class='centerMe'><div></div></div>");
7792      function addCircleText(obj, cssClass, lineHeight) {
7793        opticStats("<span></span>")
7794          .appendTo(obj)
7795          .addClass(cssClass)
7796          .html(text)
7797          .prepend(icon)
7798          .css({
7799          //'line-height': lineHeight + 'px',
7800          'font-size': customSettingsObj.fontsize + 'px',
7801          'line-height': customSettingsObj.fontsize + 'px'
7802        });
7803      }
7804
7805      /**
7806             * adds info text to circle
7807             *
7808             * @param obj
7809             * @param factor
7810             */
7811      function addInfoText(obj, factor) {
7812        opticStats('<span></span>')
7813          .appendTo(obj)
7814          .addClass('circle-info-half')
7815        //.css(
7816        //'line-height', (customSettingsObj.dimension * factor) + 'px'
7817        //)
7818          .text(info);
7819      }
7820
7821      /**
7822             * checks which data attributes are defined
7823             * @param obj
7824             */
7825      function checkDataAttributes(obj) {
7826        opticStats.each(customSettings, function (index, attribute) {
7827          if (obj.data(attribute) != undefined) {
7828            customSettingsObj[attribute] = obj.data(attribute);
7829          } else {
7830            customSettingsObj[attribute] = opticStats(settings).attr(attribute);
7831          }
7832
7833          if (attribute == 'fill' && obj.data('fill') != undefined) {
7834            fill = true;
7835          }
7836        });
7837      }
7838
7839      //Animation Variables
7840      var inc = 0, counter=0,calm = 2,finishFrames=0, animationType = obj.data('animation-type'), slowTheInc = 0;
7841      // ---------------------- //
7842      // Animation Functions
7843      // ---------------------- //
7844      function blend(inColor,outColor,current){
7845        var inColors = inColor.substring(inColor.indexOf('(') + 1, inColor.lastIndexOf(')')).split(/,\s*/),
7846            outColors = outColor.substring(outColor.indexOf('(') + 1, outColor.lastIndexOf(')')).split(/,\s*/),
7847            r,g,b,a,cur;
7848        for(var i=0; i<inColors.length; i++) { inColors[i] = parseInt(inColors[i], 10); }
7849        for(var i=0; i<outColors.length; i++) { outColors[i] = parseInt(outColors[i], 10); }
7850        if(current < .5 ) {
7851          cur = current*2;
7852          r = Math.min(255,Math.max(0, inColors[0] + (outColors[0]  * cur)));
7853          g = Math.min(255,Math.max(0, inColors[1] + (outColors[1]  * cur)));
7854          b = Math.min(255,Math.max(0, inColors[2] + (outColors[2]  * cur)));
7855        } else {
7856          cur = (current-.5)*2;
7857          r = Math.min(255,Math.max(0,Math.max(inColors[0], outColors[0]) + ((outColors[0] - inColors[0]) * cur)));
7858          g = Math.min(255,Math.max(0,Math.max(inColors[1], outColors[1]) + ((outColors[1] - inColors[1]) * cur)));
7859          b = Math.min(255,Math.max(0,Math.max(inColors[2], outColors[2]) + ((outColors[2] - inColors[2]) * cur)));
7860        }
7861        var a = inColors[3]+((outColors[3] - inColors[3])*current);
7862        return 'rgba('+Math.floor(r)+', '+Math.floor(g)+', '+Math.floor(b)+', '+Math.floor(a)+')';
7863      }
7864      if (type == 'line' || type == 'vert-line') {
7865        customSettingsObj.bordersize = customSettingsObj.bordersize*2;
7866      }
7867      var increaseInc = function(inc, current) {
7868        if (current >= 1) {
7869          //          slowTheInc += 0.00002;
7870          //          slowTheInc = Math.min(slowTheInc, 0.005);
7871          //          inc = inc + (0.005-slowTheInc);
7872        } else {
7873          inc += 0.005;
7874        }
7875        return inc;
7876      }
7877      var moveColors = function(value, inc) {
7878        var pos = value+inc;
7879        pos = pos.toString();
7880        pos = pos.split(".").pop();
7881        pos = parseFloat("."+pos);
7882        return pos;
7883      }
7884      var createGrad = function(inc,sizeX, sizeY) {
7885        var grd=context.createLinearGradient(0,0,sizeX,sizeY);
7886        grd.addColorStop(moveColors(0, inc),"#FF0000");
7887        grd.addColorStop(moveColors(.1, inc),"#FFFF00");
7888        grd.addColorStop(moveColors(.2, inc),"#00FF00");
7889        grd.addColorStop(moveColors(.3, inc),"#0000FF");
7890        grd.addColorStop(moveColors(.4, inc),"#FF00FF");
7891        grd.addColorStop(moveColors(.5, inc),"#FF0000");
7892        grd.addColorStop(moveColors(.6, inc),"#FFFF00");
7893        grd.addColorStop(moveColors(.7, inc),"#00FF00");
7894        grd.addColorStop(moveColors(.8, inc),"#0000FF");
7895        grd.addColorStop(moveColors(.9, inc),"#FF00FF");
7896        grd.addColorStop(moveColors(1, inc),"#FF0000");
7897        return grd;
7898      }
7899      var shadowGlow = function() {
7900        context.shadowColor = customSettingsObj.fgcolor;
7901        context.shadowOffsetX = 0;
7902        context.shadowOffsetY = 0;
7903        context.shadowBlur = 10;
7904      }
7905      var drawBorder = function() {
7906        context.lineWidth = customSettingsObj.bordersize + 1;
7907        context.strokeStyle = customSettingsObj.bgcolor;
7908        context.stroke();
7909        if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle') {
7910          //
7911        } else {
7912          context.fillStyle = customSettingsObj.fill;
7913          context.fill();
7914        }
7915        context.beginPath();
7916        context.save();
7917      }
7918      var fillAnimation = function(animationType, current) {
7919        if(animationType == 1){
7920          context.strokeStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
7921          context.stroke();
7922        } else if(animationType == 2){
7923          context.strokeStyle = customSettingsObj.fgcolor;
7924          if (type == 'line') {
7925            var grd=context.createLinearGradient(sizeX,0,0,0);
7926            grd.addColorStop(0,"white");
7927            grd.addColorStop(1,customSettingsObj.fgcolor);
7928            context.strokeStyle = grd;
7929            shadowGlow();
7930          } else if (type == 'vert-line') {
7931            var grd=context.createLinearGradient(0,0,0,sizeY);
7932            grd.addColorStop(0,"white");
7933            grd.addColorStop(1,customSettingsObj.fgcolor);
7934            context.strokeStyle = grd;
7935            shadowGlow();
7936          } else {
7937            var grd = context.createRadialGradient(sizeX/2, sizeY/2, (sizeX+customSettingsObj.bordersize*2)/2.5, sizeY/2, sizeX/2, (sizeY-customSettingsObj.bordersize*2)/2.5);
7938            grd.addColorStop(0, customSettingsObj.fgcolor);
7939            grd.addColorStop(0.5, 'white');
7940            grd.addColorStop(1, customSettingsObj.fgcolor);
7941            context.strokeStyle = grd;
7942            shadowGlow();
7943          }
7944          context.stroke();
7945          context.restore();
7946        } else if(animationType == 3){
7947          if (type == 'line') {
7948            var grd = createGrad(inc,sizeX,sizeY);
7949            inc = increaseInc(inc,current);
7950            context.strokeStyle = grd;
7951          } else if (type == 'vert-line') {
7952            var grd=context.createLinearGradient(sizeX/2,0,sizeX/2,sizeY);
7953            grd.addColorStop(moveColors(0, inc),"#FF0000");
7954            grd.addColorStop(moveColors(.1, inc),"#FFFF00");
7955            grd.addColorStop(moveColors(.2, inc),"#00FF00");
7956            grd.addColorStop(moveColors(.3, inc),"#0000FF");
7957            grd.addColorStop(moveColors(.4, inc),"#FF00FF");
7958            grd.addColorStop(moveColors(.5, inc),"#FF0000");
7959            grd.addColorStop(moveColors(.6, inc),"#FFFF00");
7960            grd.addColorStop(moveColors(.7, inc),"#00FF00");
7961            grd.addColorStop(moveColors(.8, inc),"#0000FF");
7962            grd.addColorStop(moveColors(.9, inc),"#FF00FF");
7963            grd.addColorStop(moveColors(1, inc),"#FF0000");
7964            inc = increaseInc(inc,current);
7965            context.strokeStyle = grd;
7966          } else {
7967            var grd = createGrad(inc,sizeX,sizeY);
7968            inc = increaseInc(inc,current);
7969            context.strokeStyle = grd;
7970          }
7971          context.stroke();
7972          context.restore();
7973        } else {
7974          context.strokeStyle = customSettingsObj.fgcolor;
7975          context.stroke();
7976        }
7977      }
7978      // ---------------------- //
7979      // Animation
7980      // ---------------------- //
7981      function animate(current) {
7982        //Clear Canvas for next frame
7983        context.clearRect(0, 0, canvas.width, canvas.height);
7984        //Draw Background
7985        if (type == 'line' || type == 'vert-line') {
7986          context.rect(10, 10, sizeX-20, sizeY-20);
7987        } else if (type == 'fill-circle-wave' || type == 'grow-circle' || type == 'fill-circle' || type == 'full' || type == 'half') {
7988          context.beginPath();
7989          context.arc(x, y, radius, endAngle, startAngle, false);
7990        }
7991        context.fillStyle = customSettingsObj.fill;
7992        context.fill();
7993        if (type == 'line') {
7994          context.beginPath();
7995          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
7996          context.lineTo(sizeX-10,sizeY-(customSettingsObj.bordersize/2+10));
7997          drawBorder();
7998          context.moveTo(10,sizeY-(customSettingsObj.bordersize/2+10));
7999          context.lineTo(Math.min((sizeX-20) * current+10,sizeX-10),sizeY-(customSettingsObj.bordersize/2+10));
8000          fillAnimation(animationType,current);
8001        } else if (type == 'vert-line'){
8002          context.beginPath();
8003          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
8004          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),10);
8005          drawBorder();
8006          context.moveTo(sizeX-(customSettingsObj.bordersize/2+10),sizeY-10);
8007          context.lineTo(sizeX-(customSettingsObj.bordersize/2+10),Math.max((sizeY-20) * (1-current)+10,10));
8008          fillAnimation(animationType,current);
8009        } else if (type == 'full' || type=='half') {
8010          drawBorder();
8011          context.arc(x, y, radius, -(quart) + additionalAngelPI, ((circ) * (Math.min(current,1)+.005)) - quart + additionalAngelPI, false);
8012          fillAnimation(animationType,current);
8013        } else if (type == 'grow-circle') {
8014          drawBorder();
8015          var fillRadius = sizeX/2.5*Math.min(current,1);
8016          context.arc(sizeX/2, sizeY/2, Math.max(fillRadius-customSettingsObj.bordersize/2,0), endAngle, startAngle, false);
8017          if(animationType == 1){
8018            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)',current);
8019            context.fill();
8020          } else if(animationType == 2){
8021            var grd=context.createLinearGradient(0,0,0,sizeY);
8022            grd.addColorStop(0,"white");
8023            grd.addColorStop(1,customSettingsObj.fgcolor);
8024            shadowGlow();
8025            context.fillStyle = grd;
8026            context.fill();
8027          } else if(animationType == 3){
8028            var grd = createGrad(inc,sizeX,sizeY);
8029            inc = increaseInc(inc,current);
8030            context.fillStyle = grd;
8031            context.fill();
8032          } else {
8033            context.fillStyle = customSettingsObj.fgcolor;
8034            context.fill();
8035          }
8036          context.restore();
8037        } else if (type == 'fill-circle') {
8038          drawBorder();
8039          var fillRadius = sizeX/2.5,
8040              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
8041          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
8042          if(animationType == 1){
8043            context.clip();
8044            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
8045            context.fillRect(0, fillLine, sizeX, sizeY);
8046          } else if(animationType == 2){
8047            var grd=context.createLinearGradient(0,0,0,sizeY);
8048            grd.addColorStop(0,"white");
8049            grd.addColorStop(1,customSettingsObj.fgcolor);
8050            shadowGlow();
8051            context.clip();
8052            context.fillStyle = grd;
8053            context.fillRect(0, fillLine, sizeX, sizeY);
8054
8055          } else if(animationType == 3){
8056            context.clip();
8057            var grd = createGrad(inc,sizeX, sizeY);
8058            inc = increaseInc(inc,current);
8059            context.fillStyle = grd;
8060            context.fillRect(0, fillLine, sizeX, sizeY);
8061          } else {
8062            context.clip();
8063            context.fillStyle = customSettingsObj.fgcolor;
8064            context.fillRect(0, fillLine, sizeX, sizeY);
8065          }
8066          context.restore();
8067        } else if (type == 'fill-circle-wave') {
8068          drawBorder();
8069          var fillRadius = sizeX/2.5,
8070              fillLine = 0.8*(sizeX*(1-current))+(sizeX*.1);
8071          context.arc(sizeX/2, sizeY/2, fillRadius-customSettingsObj.bordersize/2, endAngle, startAngle, false);
8072          var ypos=fillLine, xpos=0;
8073          counter += .1;
8074          counterLoop = counter;
8075          var increase = 2*Math.PI / 12;
8076          context.clip();
8077          context.beginPath();
8078          context.moveTo(sizeX,sizeY);
8079          context.lineTo(0,sizeY);
8080          context.lineTo(0,ypos);
8081          if (curPerc > endPercent) {
8082            calm-=.01;
8083            if(calm<0) calm=0;
8084          }
8085          for(i=0; i<=sizeX; i+=10){
8086            xpos = i;
8087            ypos =  ypos - Math.sin(counterLoop) * calm;
8088            counterLoop += increase;
8089            context.lineTo(xpos,ypos);
8090          }
8091          context.lineTo(sizeX,sizeY);
8092          context.closePath();
8093          if(animationType == 1){
8094            context.fillStyle = blend('rgba(255,0,0,1)','rgba(0,255,0,1)', current);
8095            context.fill();
8096          } else if(animationType == 2){
8097            var grd=context.createLinearGradient(0,0,0,sizeY);
8098            grd.addColorStop(0,"white");
8099            grd.addColorStop(1,customSettingsObj.fgcolor);
8100            shadowGlow();
8101            context.clip();
8102            context.fillStyle = grd;
8103            context.fill();
8104          } else if(animationType == 3){
8105            context.clip();
8106            var grd = createGrad(inc,sizeX,sizeY);
8107            inc = increaseInc(inc,current);
8108            context.fillStyle = grd;
8109            context.fill();
8110          } else {
8111            context.clip();
8112            context.fillStyle = customSettingsObj.fgcolor;
8113            context.fill();
8114          }
8115          context.restore();
8116        }
8117
8118        if (curPerc < endPercent) {
8119          curPerc += curStep;
8120          requestAnimationFrame(function () {
8121            context.strokeStyle = customSettingsObj.fgcolor;
8122            animate(Math.min(curPerc, endPercent) / 100);
8123          }, obj);
8124        } else if(finishFrames < 500) {
8125          curPerc += curStep;
8126          finishFrames+=1;
8127          requestAnimationFrame(function () {
8128            context.strokeStyle = customSettingsObj.fgcolor;
8129            animate(Math.min(curPerc, endPercent) / 100);
8130          }, obj);
8131        }
8132
8133        if (curPerc == endPercent && fireCallback && typeof(options) != "undefined") {
8134          if (opticStats.isFunction(options.complete)) {
8135            options.complete();
8136
8137            fireCallback = false;
8138          }
8139        }
8140      }
8141      obj.waypoint(function(direction){
8142        animate(curPerc / 100);
8143        this.destroy();
8144      }, { offset: '100%' });
8145    });
8146  };
8147}(opticStats));
8148/*
8149 The MIT License (MIT)
8150 CountUp
8151+Copyright (c) 2014-2015 Jamie Perkins
8152 Permission is hereby granted, free of charge, to any person obtaining a copy of
8153 this software and associated documentation files (the "Software"), to deal in
8154*/
8155!function(t,a){"function"==typeof define&&define.amd?define(a):"object"==typeof exports?module.exports=a(require,exports,module):t.CountUp=a()}(this,function(){var t=function(t,a,e,n,i,r){for(var o=0,s=["webkit","moz","ms","o"],u=0;u<s.length&&!window.requestAnimationFrame;++u)window.requestAnimationFrame=window[s[u]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[s[u]+"CancelAnimationFrame"]||window[s[u]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var a=(new Date).getTime(),e=Math.max(0,16-(a-o)),n=window.setTimeout(function(){t(a+e)},e);return o=a+e,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),this.options={useEasing:!0,useGrouping:!0,separator:",",decimal:"."};for(var m in r)r.hasOwnProperty(m)&&(this.options[m]=r[m]);""===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=""),this.options.suffix||(this.options.suffix=""),this.d="string"==typeof t?document.getElementById(t):t,this.startVal=Number(a),this.endVal=Number(e),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,n||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(i)||2e3;var l=this;this.version=function(){return"1.6.0"},this.printValue=function(t){var a=isNaN(t)?"--":l.formatNumber(t);"INPUT"==l.d.tagName?this.d.value=a:"text"==l.d.tagName||"tspan"==l.d.tagName?this.d.textContent=a:this.d.innerHTML=a},this.easeOutExpo=function(t,a,e,n){return e*(-Math.pow(2,-10*t/n)+1)*1024/1023+a},this.count=function(t){l.startTime||(l.startTime=t),l.timestamp=t;var a=t-l.startTime;l.remaining=l.duration-a,l.frameVal=l.options.useEasing?l.countDown?l.startVal-l.easeOutExpo(a,0,l.startVal-l.endVal,l.duration):l.easeOutExpo(a,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.startVal-(l.startVal-l.endVal)*(a/l.duration):l.startVal+(l.endVal-l.startVal)*(a/l.duration),l.frameVal=l.countDown?l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),a<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},this.start=function(t){return l.callback=t,l.rAF=requestAnimationFrame(l.count),!1},this.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},this.reset=function(){l.paused=!1,delete l.startTime,l.startVal=a,cancelAnimationFrame(l.rAF),l.printValue(l.startVal)},this.update=function(t){cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=Number(t),l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count)},this.formatNumber=function(t){t=t.toFixed(l.decimals),t+="";var a,e,n,i;if(a=t.split("."),e=a[0],n=a.length>1?l.options.decimal+a[1]:"",i=/(\d+)(\d{3})/,l.options.useGrouping)for(;i.test(e);)e=e.replace(i,"$1"+l.options.separator+"$2");return l.options.prefix+e+n+l.options.suffix},l.printValue(l.startVal)};return t});
8156/*!
8157Waypoints - 4.0.0
8158Copyright © 2011-2015 Caleb Troughton
8159Licensed under the MIT license.
8160https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
8161*/
8162!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()}
vendor: 5,106 bytes, line 8162
8162,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,h=o.newScroll>=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,p=d.triggerPoint>=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:[],r
8162ight:[]}},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.opticStatselement=e(t)}var e=opticStats,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.opticStatselement[i].apply(this.opticStatselement,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;opticStats&&(opticStats.fn.waypoint=t(opticStats)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
8163
8164opticStats( document ).ready(function() {
8165  var speed =  3000,
8166      countNumberstacks_in_33343 = "1",
8167      decimalNumber = '90',
8168      decimalNumber = decimalNumber.replace(/\D/g,''),
8169      decimalLength = decimalNumber.length,
8170      maxValuePercentstacks_in_33343 = (countNumberstacks_in_33343/1),
8171      speedA = (2000/speed)*maxValuePercentstacks_in_33343;
8172  if (1 == 0) {
8173    if(countNumberstacks_in_33343 < 0) {
8174      maxValuePercentstacks_in_33343 = 1;
8175    } else {
8176      maxValuePercentstacks_in_33343 = (0-countNumberstacks_in_33343)/0;
8177    }
8178  }
8179  if('True' == 'False' ) {
8180     decimalLength = 0;
8181  } else {
8182    countNumberstacks_in_33343 = countNumberstacks_in_33343.replace(/\D/g,'');
8183    countNumberstacks_in_33343 = countNumberstacks_in_33343+"."+decimalNumber;
8184  }
8185  if('False' == 'True' ) {
8186    var items = readData_data(opticStats("#data"));
8187    countNumberstacks_in_33343 = items['data-A1'];
8188    if(countNumberstacks_in_33343 ==  null) {
8189      countNumberstacks_in_33343 = '0';
8190    }
8191    opticStats("#stat_stacks_in_33343").data("percent", maxValuePercentstacks_in_33343*100);
8192    //
8193    //
8194    if(countNumberstacks_in_33343.indexOf(".") !== -1) {
8195      decimalNumber = countNumberstacks_in_33343.substr(countNumberstacks_in_33343.indexOf(".") + 1);
8196      decimalNumber = decimalNumber.replace(/\D/g,'');
8197      decimalLength = decimalNumber.length;
8198      countNumberstacks_in_33343 = countNumberstacks_in_33343.substr(0, countNumberstacks_in_33343.indexOf('.'));
8199    }
8200    //
8201    //
8202    countNumberstacks_in_33343 = countNumberstacks_in_33343.replace(/[^0-9\-]/g,'');
8203    countNumberstacks_in_33343 = countNumberstacks_in_33343+"."+decimalNumber;
8204    maxValuePercentstacks_in_33343 = (countNumberstacks_in_33343/1);
8205    if (1 == 0) {
8206      if(countNumberstacks_in_33343 < 0) {
8207        maxValuePercentstacks_in_33343 = 1;
8208      } else {
8209        maxValuePercentstacks_in_33343 = (0-countNumberstacks_in_33343)/0;
8210      }
8211    }
8212    speedA = (2000/speed)*maxValuePercentstacks_in_33343;
8213    opticStats("#stat_stacks_in_33343").data("percent", maxValuePercentstacks_in_33343*100);
8214  } else {
8215    var maxValuePercentstacks_in_33343 = (countNumberstacks_in_33343/1);
8216    if (1 == 0) {
8217      if(countNumberstacks_in_33343 < 0) {
8218        maxValuePercentstacks_in_33343 = 1;
8219      } else {
8220        maxValuePercentstacks_in_33343 = (0-countNumberstacks_in_33343)/0;
8221      }
8222    }
8223    speedA = (2000/speed)*maxValuePercentstacks_in_33343;
8224    opticStats("#stat_stacks_in_33343").data("percent", maxValuePercentstacks_in_33343*100);
8225  }
8226  opticStats('#stat_stacks_in_33343').attr("data-animationstep", speedA);
8227  opticStats('#stat_stacks_in_33343').circliful();
8228  opticStats('#stat_stacks_in_33343').waypoint(function(direction){
8229
8230  //
8231//  opticStats('#stacks_in_33343 .counter').counterUp({
8232//    delay: 10,
8233//    time: speed
8234//  });
8235
8236    var options = {
8237      //
8238      //
8239      separator : ',',
8240      decimal : '.',
8241      //
8242      //
8243      //
8244      useEasing : false
8245    };
8246    opticStats('#stacks_in_33343 .counter').attr("id", "count_stacks_in_33343");
8247    var count = new CountUp('count_stacks_in_33343', 0, countNumberstacks_in_33343, decimalLength, (1.9/speedA)*(maxValuePercentstacks_in_33343), options);//(1.75/speedA)*(maxValuePercentstacks_in_33343)
8248    count.start();
8249    //
8250    //
8251    opticStats('#stat_stacks_in_33343 .circle-text').append("");
8252    opticStats('#stat_stacks_in_33343 .circle-text-half').append("");
8253    //
8254    //
8255    //
8256    //
8257    opticStats('#stat_stacks_in_33343 span > .osIcon').wrap("<div class='os-icon-wrap' />")
8258    opticStats('#stat_stacks_in_33343 .os-icon-wrap').prependTo(opticStats('#stat_stacks_in_33343 .centerMe > div > span:first-child'));
8259    //
8260    //
8261    scale();
8262    this.destroy();
8263  }, { offset: '100%' });
8264
8265
8266});
8267
8268opticStats( window ).resize(function() {
8269  scale();
8270});
8271function scale() {
8272  var width = 290,
8273      currentWidth = opticStats('#stat_stacks_in_33343').parent().outerWidth();
8274  if(currentWidth < width) {
8275    var scale = currentWidth/width;
8276    opticStats('#stat_stacks_in_33343').css({
8277      "transform" : "scale("+scale+")",
8278      "transform-origin" : "0px",
8279      "-o-transform" : "scale("+scale+")",
8280      "-o-transform-origin" : "0px"
8281    });
8282  } else {
8283    opticStats('#stat_stacks_in_33343').css({
8284      "transform" : "scale(1)",
8285      "-o-transform" : "scale(1)"
8286    });
8287  }
8288}
8289
8290return stack;})(stacks.stacks_in_33343);
8291stacks.stacks_in_33344 = {};
8292stacks.stacks_in_33344 = (function(stack) {
8293
8294return stack;})(stacks.stacks_in_33344);
8295stacks.stacks_in_33370 = {};
8296stacks.stacks_in_33370 = (function(stack) {
8297
8298return stack;})(stacks.stacks_in_33370);
8299stacks.stacks_in_33387 = {};
8300stacks.stacks_in_33387 = (function(stack) {
8301
8302return stack;})(stacks.stacks_in_33387);
8303stacks.stacks_in_33410 = {};
8304stacks.stacks_in_33410 = (function(stack) {
8305
8306return stack;})(stacks.stacks_in_33410);
8307stacks.stacks_in_33428 = {};
8308stacks.stacks_in_33428 = (function(stack) {
8309
8310return stack;})(stacks.stacks_in_33428);
8311stacks.stacks_in_33448 = {};
8312stacks.stacks_in_33448 = (function(stack) {
8313
8314return stack;})(stacks.stacks_in_33448);
8315stacks.stacks_in_33465 = {};
8316stacks.stacks_in_33465 = (function(stack) {
8317
8318return stack;})(stacks.stacks_in_33465);
8319stacks.stacks_in_33499 = {};
8320stacks.stacks_in_33499 = (function(stack) {
8321
8322return stack;})(stacks.stacks_in_33499);
8323stacks.stacks_in_33518 = {};
8324stacks.stacks_in_33518 = (function(stack) {
8325
8326return stack;})(stacks.stacks_in_33518);
8327stacks.stacks_in_33535 = {};
8328stacks.stacks_in_33535 = (function(stack) {
8329
8330return stack;})(stacks.stacks_in_33535);
8331stacks.stacks_in_33552 = {};
8332stacks.stacks_in_33552 = (function(stack) {
8333
8334return stack;})(stacks.stacks_in_33552);
8335stacks.stacks_in_33569 = {};
8336stacks.stacks_in_33569 = (function(stack) {
8337
8338return stack;})(stacks.stacks_in_33569);
8339stacks.stacks_in_33595 = {};
8340stacks.stacks_in_33595 = (function(stack) {
8341
8342return stack;})(stacks.stacks_in_33595);
8343stacks.stacks_in_33626 = {};
8344stacks.stacks_in_33626 = (function(stack) {
8345
8346return stack;})(stacks.stacks_in_33626);
8347stacks.stacks_in_33482 = {};
8348stacks.stacks_in_33482 = (function(stack) {
8349
8350return stack;})(stacks.stacks_in_33482);
8351stacks.stacks_in_32946 = {};
8352stacks.stacks_in_32946 = (function(stack) {
8353var jQuery = stacks.jQuery;var $ = jQuery; stacks.totalRequestHeaders={'Total-Key':$.trim('')};
8354
8355return stack;})(stacks.stacks_in_32946);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.