/*! * jaralax library * version: 0.2 public beta * http://jarallax.com/ * * copyright 2012, jacko hoogeveen * dual licensed under the mit or gpl version 3 licenses. * http://jarallax.com/license.html * * compressed by: http://jscompress.com * * date: 2/27/2012 */ jarallax=function(a){this.jarallaxobject=[];this.animations=[];this.defaultvalues=[];this.progress=0;this.controllers=[];if(a===undefined){this.controllers.push(new controllerscroll)}else{if(a.length){this.controllers=a}else if(typeof a==="object"){this.controllers.push(a)}else{throw new error('wrong controller data type: "'+typeof a+'". expected "object" or "array"')}}for(var b=0;b1){a=1}else if(a<0){a=0}else{this.progress=a}for(j=0;j=0){b=parseint(this.startvalues["progress"],10)/100}if(this.endvalues["progress"].indexof("%")>=0){c=parseint(this.endvalues["progress"],10)/100}if(progress>b&&progress=0){b=parseint(this.startvalues["progress"],10)/100}if(this.endvalues["progress"].indexof("%")>=0){c=parseint(this.endvalues["progress"],10)/100}if(this.startvalues["event"]){this.dispatchevent(this.progress,a,b,c)}if(a>=b&&a<=c){for(i in this.startvalues){if(i!="progress"&&i!="style"&&i!="event"){if(undefined!=this.endvalues[i]){var e=jarallax.getunits(this.startvalues[i]+"");e=e.replace("-","");var f=parsefloat(this.startvalues[i]);var g=parsefloat(this.endvalues[i]);var h=c-b;var j=a-b;var k=g-f;var l=jarallax.easing[d["easing"]](j,f,k,h,d["easing"]["power"]);l+=e;$(this.selector).css(i,l)}else{$(this.selector).css(i,this.startvalues[i])}}}}this.progress=a}};jarallaxanimation.prototype.dispatchevent=function(a,b,c,d){var e=this.startvalues["event"];var f={};f.animation=this;f.selector=this.selector;if(b>=c&&b<=d){if(e.start&&ab){f.type="reverse";e.reverse(f)}}else{if(e.complete&&ad){f.type="complete";e.complete(f)}if(e.rewinded&&a>c&&b=1){this.progress=1;this.forward=false}else if(this.progress<=0){this.progress=0;this.forward=true}if(this.forward){this.progress+=this.speed}else{this.progress-=this.speed}};controllertime.prototype.activate=function(a){this.jarallax=a;this.progress=0;this.interval=$.interval(this.oninterval.bind(this),this.interval)};controllertime.prototype.deactivate=function(a){};controllertime.prototype.update=function(a){};controllerdrag=function(a,b,c){this.object=$(a);this.start=b;this.end=c;this.container="";this.width;this.startx=0;this.starty=0};controllerdrag.prototype.activate=function(a){this.jarallax=a;this.container="#scrollbar";this.object.draggable({containment:this.container,axis:"x"});this.object.bind("drag",{me:this},this.ondrag);this.container=$(this.container);this.width=$(this.container).innerwidth()-this.object.outerwidth()};controllerdrag.prototype.ondrag=function(a){var b=parseint($(this).css("left"),10);var c=b/a.data.me.width;a.data.me.jarallax.setprogress(c)};controllerdrag.prototype.deactivate=function(a){};controllerdrag.prototype.update=function(a){this.object.css("left",a*this.width)};controllerkeyboard=function(a,b,c){this.repetitiveinput=c;this.preventdefault=b||false;this.keys=a||{38:-.01,40:.01};this.keysstate=new object};controllerkeyboard.prototype.activate=function(a){this.jarallax=a;$(document.documentelement).keydown({me:this},this.keydown);$(document.documentelement).keyup({me:this},this.keyup);for(key in this.keys){this.keysstate[key]=false}};controllerkeyboard.prototype.deactivate=function(a){};controllerkeyboard.prototype.keydown=function(a){var b=a.data.me;for(key in b.keys){if(key==a.keycode){if(b.keysstate[key]!==true||b.repetitiveinput){b.jarallax.setprogress(b.jarallax.progress+b.keys[key])}b.keysstate[key]=true;if(b.preventdefault){a.preventdefault()}}}};controllerkeyboard.prototype.keyup=function(a){var b=a.data.me;for(key in b.keys){if(key==a.keycode){b.keysstate[key]=false}}};controllerkeyboard.prototype.update=function(a){};controllermousewheel=function(a,b){this.sensitivity=-a;this.preventdefault=b||false};controllermousewheel.prototype.activate=function(a){this.jarallax=a;$("body").bind("mousewheel",{me:this},this.onscroll)};controllermousewheel.prototype.deactivate=function(a){this.jarallax=a};controllermousewheel.prototype.onscroll=function(a,b){controller=a.data.me;controller.jarallax.setprogress(controller.jarallax.progress+controller.sensitivity*b);if(controller.preventdefault){a.preventdefault()}};controllermousewheel.prototype.update=function(a){};controlleripadscroll=function(){this.x=0;this.previousx=-1;this.top=700;this.moveright=false};controlleripadscroll.prototype.activate=function(a,b){this.jarallax=a;this.values=b;$("body").bind("touchmove",{me:this},this.onscroll)};controlleripadscroll.prototype.onscroll=function(a){a.preventdefault();var b=a.data.me;var c=a.originalevent.touches.item(0);if(b.previousx==-1){b.previousx=c.clientx}else{if(c.clientx-b.previousx<100&&c.clientx-b.previousx>-100){if(b.moveright){b.x-=c.clientx-b.previousx}else{b.x+=c.clientx-b.previousx}b.x=b.x<1e3?b.x:1e3;b.x=b.x>0?b.x:0}b.previousx=c.clientx;b.jarallax.setprogress(b.x/b.top)}};controlleripadscroll.prototype.deactivate=function(a){};controlleripadscroll.prototype.update=function(a){}