;(function(window,document,undefined){'use strict';var NAME='Parallax';var MAGIC_NUMBER=30;var DEFAULTS={relativeInput:false,clipRelativeInput:false,calibrationThreshold:100,calibrationDelay:500,supportDelay:500,calibrateX:false,calibrateY:true,invertX:true,invertY:true,limitX:false,limitY:false,scalarX:5.0,scalarY:5.0,frictionX:0.1,frictionY:0.1,originX:0.5,originY:0.5};function Parallax(element,options){this.element=element;if(this.element==null)return;this.layers=element.getElementsByClassName('layer');var data={calibrateX:this.data(this.element,'calibrate-x'),calibrateY:this.data(this.element,'calibrate-y'),invertX:this.data(this.element,'invert-x'),invertY:this.data(this.element,'invert-y'),limitX:this.data(this.element,'limit-x'),limitY:this.data(this.element,'limit-y'),scalarX:this.data(this.element,'scalar-x'),scalarY:this.data(this.element,'scalar-y'),frictionX:this.data(this.element,'friction-x'),frictionY:this.data(this.element,'friction-y'),originX:this.data(this.element,'origin-x'),originY:this.data(this.element,'origin-y')};for(var key in data){if(data[key]===null)delete data[key];}this.extend(this,DEFAULTS,options,data);this.calibrationTimer=null;this.calibrationFlag=true;this.enabled=false;this.depths=[];this.raf=null;this.bounds=null;this.ex=0;this.ey=0;this.ew=0;this.eh=0;this.ecx=0;this.ecy=0;this.erx=0;this.ery=0;this.cx=0;this.cy=0;this.ix=0;this.iy=0;this.mx=0;this.my=0;this.vx=0;this.vy=0;this.onMouseMove=this.onMouseMove.bind(this);this.onDeviceOrientation=this.onDeviceOrientation.bind(this);this.onOrientationTimer=this.onOrientationTimer.bind(this);this.onCalibrationTimer=this.onCalibrationTimer.bind(this);this.onAnimationFrame=this.onAnimationFrame.bind(this);this.onWindowResize=this.onWindowResize.bind(this);this.initialise();}Parallax.prototype.extend=function(){if(arguments.length>1){var master=arguments[0];for(var i=1,l=arguments.length;i0&&propertyValue!=="none";documentElement.style.overflow=documentOverflow;body.removeChild(element);}break;}return featureSupport;};Parallax.prototype.ww=null;Parallax.prototype.wh=null;Parallax.prototype.wcx=null;Parallax.prototype.wcy=null;Parallax.prototype.wrx=null;Parallax.prototype.wry=null;Parallax.prototype.portrait=null;Parallax.prototype.desktop=!navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i);Parallax.prototype.vendors=[null,['-webkit-','webkit'],['-moz-','Moz'],['-o-','O'],['-ms-','ms']];Parallax.prototype.motionSupport=!!window.DeviceMotionEvent;Parallax.prototype.orientationSupport=!!window.DeviceOrientationEvent;Parallax.prototype.orientationStatus=0;Parallax.prototype.transform2DSupport=Parallax.prototype.transformSupport('2D');Parallax.prototype.transform3DSupport=Parallax.prototype.transformSupport('3D');Parallax.prototype.propertyCache={};Parallax.prototype.initialise=function(){if(this.transform3DSupport)this.accelerate(this.element);var style=window.getComputedStyle(this.element);if(style.getPropertyValue('position')==='static'){this.element.style.position='relative';}this.updateLayers();this.updateDimensions();this.enable();this.queueCalibration(this.calibrationDelay);};Parallax.prototype.updateLayers=function(){this.layers=this.element.getElementsByClassName('layer');this.depths=[];for(var i=0,l=this.layers.length;ithis.calibrationThreshold)||(Math.abs(dy)>this.calibrationThreshold)){this.queueCalibration(0);}if(this.portrait){this.mx=this.calibrateX?dy:this.iy;this.my=this.calibrateY?dx:this.ix;}else{this.mx=this.calibrateX?dx:this.ix;this.my=this.calibrateY?dy:this.iy;}this.mx*=this.ew*(this.scalarX/100);this.my*=this.eh*(this.scalarY/100);if(!isNaN(parseFloat(this.limitX))){this.mx=this.clamp(this.mx,-this.limitX,this.limitX);}if(!isNaN(parseFloat(this.limitY))){this.my=this.clamp(this.my,-this.limitY,this.limitY);}this.vx+=(this.mx-this.vx)*this.frictionX;this.vy+=(this.my-this.vy)*this.frictionY;for(var i=0,l=this.layers.length;ithis.ww;if(this.portrait!==portrait){this.portrait=portrait;this.calibrationFlag=true;}if(this.calibrationFlag){this.calibrationFlag=false;this.cx=x;this.cy=y;}this.ix=x;this.iy=y;}};Parallax.prototype.onMouseMove=function(event){var clientX=event.clientX;var clientY=event.clientY;if(!this.orientationSupport&&this.relativeInput){if(this.clipRelativeInput){clientX=Math.max(clientX,this.ex);clientX=Math.min(clientX,this.ex+this.ew);clientY=Math.max(clientY,this.ey);clientY=Math.min(clientY,this.ey+this.eh);}this.ix=(clientX-this.ex-this.ecx)/this.erx;this.iy=(clientY-this.ey-this.ecy)/this.ery;}else{this.ix=(clientX-this.wcx)/this.wrx;this.iy=(clientY-this.wcy)/this.wry;}};window[NAME]=Parallax;})(window,document);;(function(){var lastTime=0;var vendors=['ms','moz','webkit','o'];for(var x=0;x