var scrollme=function(n){var t={},r=n(document),i=n(window);t.body_height=0;t.viewport_height=0;t.viewport_top=0;t.viewport_bottom=0;t.viewport_top_previous=-1;t.elements=[];t.elements_in_view=[];t.property_defaults={opacity:1,translatex:0,translatey:0,translatez:0,rotatex:0,rotatey:0,rotatez:0,scale:1,scalex:1,scaley:1,scalez:1};t.scrollme_selector=".scrollme";t.animateme_selector=".animateme";t.update_interval=10;t.easing_functions={linear:function(n){return n},easeout:function(n){return n*n*n},easein:function(n){return n=1-n,1-n*n*n},easeinout:function(n){return n<.5?4*n*n*n:(n=1-n,1-4*n*n*n)}};t.init_events=["ready","page:load","page:change"];t.init_if=function(){return!0};t.init=function(){if(!t.init_if())return!1;t.init_elements();t.on_resize();i.on("resize orientationchange",function(){t.on_resize()});return i.load(function(){setTimeout(function(){t.on_resize()},100)}),setInterval(t.update,t.update_interval),!0};t.init_elements=function(){n(t.scrollme_selector).each(function(){var i={},r;i.element=n(this);r=[];n(this).find(t.animateme_selector).addBack(t.animateme_selector).each(function(){var i={},u;i.element=n(this);i.when=i.element.data("when");i.from=i.element.data("from");i.to=i.element.data("to");i.crop=i.element.is("[data-crop]")?i.element.data("crop"):!0;i.easing=i.element.is("[data-easing]")?t.easing_functions[i.element.data("easing")]:t.easing_functions.easeout;u={};i.element.is("[data-opacity]")&&(u.opacity=i.element.data("opacity"));i.element.is("[data-translatex]")&&(u.translatex=i.element.data("translatex"));i.element.is("[data-translatey]")&&(u.translatey=i.element.data("translatey"));i.element.is("[data-translatez]")&&(u.translatez=i.element.data("translatez"));i.element.is("[data-rotatex]")&&(u.rotatex=i.element.data("rotatex"));i.element.is("[data-rotatey]")&&(u.rotatey=i.element.data("rotatey"));i.element.is("[data-rotatez]")&&(u.rotatez=i.element.data("rotatez"));i.element.is("[data-scale]")&&(u.scale=i.element.data("scale"));i.element.is("[data-scalex]")&&(u.scalex=i.element.data("scalex"));i.element.is("[data-scaley]")&&(u.scaley=i.element.data("scaley"));i.element.is("[data-scalez]")&&(u.scalez=i.element.data("scalez"));i.properties=u;r.push(i)});i.effects=r;t.elements.push(i)})};t.update=function(){window.requestAnimationFrame(function(){t.update_viewport_position();t.viewport_top_previous!=t.viewport_top&&(t.update_elements_in_view(),t.animate());t.viewport_top_previous=t.viewport_top})};t.animate=function(){for(var w=t.elements_in_view.length,e,a,c,n,o,s,h=0;h<w;h++)for(e=t.elements_in_view[h],a=e.effects.length,c=0;c<a;c++){n=e.effects[c];switch(n.when){case"view":case"span":o=e.top-t.viewport_height;s=e.bottom;break;case"exit":o=e.bottom-t.viewport_height;s=e.bottom;break;default:o=e.top-t.viewport_height;s=e.top}n.crop&&(o<0&&(o=0),s>t.body_height-t.viewport_height&&(s=t.body_height-t.viewport_height));var r=(t.viewport_top-o)/(s-o),i=n.from,u=n.to,b=u-i,k=(r-i)/b,f=n.easing(k),d=t.animate_value(r,f,i,u,n,"opacity"),g=t.animate_value(r,f,i,u,n,"translatey"),nt=t.animate_value(r,f,i,u,n,"translatex"),tt=t.animate_value(r,f,i,u,n,"translatez"),it=t.animate_value(r,f,i,u,n,"rotatex"),rt=t.animate_value(r,f,i,u,n,"rotatey"),ut=t.animate_value(r,f,i,u,n,"rotatez"),l=t.animate_value(r,f,i,u,n,"scale"),v=t.animate_value(r,f,i,u,n,"scalex"),y=t.animate_value(r,f,i,u,n,"scaley"),p=t.animate_value(r,f,i,u,n,"scalez");"scale"in n.properties&&(v=l,y=l,p=l);n.element.css({opacity:d,transform:"translate3d( "+nt+"px , "+g+"px , "+tt+"px ) rotateX( "+it+"deg ) rotateY( "+rt+"deg ) rotateZ( "+ut+"deg ) scale3d( "+v+" , "+y+" , "+p+" )"})}};t.animate_value=function(n,i,r,u,f,e){var h=t.property_defaults[e],c,s,o;if(!(e in f.properties)||(c=f.properties[e],s=u>r?!0:!1,n<r&&s))return h;if(n>u&&s)return c;if(n>r&&!s)return h;if(n<u&&!s)return c;o=h+i*(c-h);switch(e){case"opacity":o=o.toFixed(2);break;case"translatex":o=o.toFixed(0);break;case"translatey":o=o.toFixed(0);break;case"translatez":o=o.toFixed(0);break;case"rotatex":o=o.toFixed(1);break;case"rotatey":o=o.toFixed(1);break;case"rotatez":o=o.toFixed(1);break;case"scale":o=o.toFixed(3)}return o};t.update_viewport_position=function(){t.viewport_top=i.scrollTop();t.viewport_bottom=t.viewport_top+t.viewport_height};t.update_elements_in_view=function(){var i,n;for(t.elements_in_view=[],i=t.elements.length,n=0;n<i;n++)t.elements[n].top<t.viewport_bottom&&t.elements[n].bottom>t.viewport_top&&t.elements_in_view.push(t.elements[n])};t.on_resize=function(){t.update_viewport();t.update_element_heights();t.update_viewport_position();t.update_elements_in_view();t.animate()};t.update_viewport=function(){t.body_height=r.height();t.viewport_height=i.height()};t.update_element_heights=function(){for(var u=t.elements.length,i,r,n=0;n<u;n++)i=t.elements[n].element.outerHeight(),r=t.elements[n].element.offset(),t.elements[n].height=i,t.elements[n].top=r.top,t.elements[n].bottom=r.top+i};r.on(t.init_events.join(" "),function(){t.init()});return t}(jQuery)