(function(n,t){"use strict";function f(n){var r,t,i;for(n=n||{},r=1;r<arguments.length;r++)if(t=arguments[r],t)for(i in t)t.hasOwnProperty(i)&&(typeof t[i]=="object"?deepExtend(n[i],t[i]):n[i]=t[i]);return n}function u(u,e){function et(){var f,i,r;if(b){for(s=t.createElement("canvas"),s.className="pg-canvas",s.style.display="block",u.insertBefore(s,u.firstChild),h=s.getContext("2d"),rt(),f=Math.round(s.width*s.height/e.density),i=0;i<f;i++)r=new c,r.setStackPos(i),o.push(r);n.addEventListener("resize",function(){ot()},!1);t.addEventListener("mousemove",function(n){k=n.pageX;d=n.pageY},!1);nt&&!g&&n.addEventListener("deviceorientation",function(){it=Math.min(Math.max(-event.beta,-30),30);tt=Math.min(Math.max(-event.gamma,-30),30)},!0);w();ut("onInit")}}function rt(){s.width=u.offsetWidth;s.height=u.offsetHeight;h.fillStyle=e.dotColor;h.strokeStyle=e.lineColor;h.lineWidth=e.lineWidth}function w(){var t;if(b){for(l=n.innerWidth,a=n.innerHeight,h.clearRect(0,0,s.width,s.height),t=0;t<o.length;t++)o[t].updatePosition();for(t=0;t<o.length;t++)o[t].draw();p||(ft=requestAnimationFrame(w))}}function ot(){var i,r,n,t,f;for(rt(),i=u.offsetWidth,r=u.offsetHeight,n=o.length-1;n>=0;n--)(o[n].position.x>i||o[n].position.y>r)&&o.splice(n,1);if(t=Math.round(s.width*s.height/e.density),t>o.length)while(t>o.length)f=new c,o.push(f);else t<o.length&&o.splice(t);for(n=o.length-1;n>=0;n--)o[n].setStackPos(n)}function st(){p=!0}function ht(){p=!1;w()}function c(){this.stackPos;this.active=!0;this.layer=Math.ceil(Math.random()*3);this.parallaxOffsetX=0;this.parallaxOffsetY=0;this.position={x:Math.ceil(Math.random()*s.width),y:Math.ceil(Math.random()*s.height)};this.speed={};switch(e.directionX){case"left":this.speed.x=+(-e.maxSpeedX+Math.random()*e.maxSpeedX-e.minSpeedX).toFixed(2);break;case"right":this.speed.x=+(Math.random()*e.maxSpeedX+e.minSpeedX).toFixed(2);break;default:this.speed.x=+(-e.maxSpeedX/2+Math.random()*e.maxSpeedX).toFixed(2);this.speed.x+=this.speed.x>0?e.minSpeedX:-e.minSpeedX}switch(e.directionY){case"up":this.speed.y=+(-e.maxSpeedY+Math.random()*e.maxSpeedY-e.minSpeedY).toFixed(2);break;case"down":this.speed.y=+(Math.random()*e.maxSpeedY+e.minSpeedY).toFixed(2);break;default:this.speed.y=+(-e.maxSpeedY/2+Math.random()*e.maxSpeedY).toFixed(2);this.speed.x+=this.speed.y>0?e.minSpeedY:-e.minSpeedY}}function ct(n,t){if(t)e[n]=t;else return e[n]}function lt(){console.log("destroy");s.parentNode.removeChild(s);ut("onDestroy");r&&r(u).removeData("plugin_"+i)}function ut(n){e[n]!==undefined&&e[n].call(u)}var b=!!t.createElement("canvas").getContext,s,h,o=[],ft,k=0,d=0,l,a,g=!navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i),nt=!!n.DeviceOrientationEvent,tt=0,v,y,it=0,p=!1;return e=f({},n[i].defaults,e),c.prototype.draw=function(){var t;for(h.beginPath(),h.arc(this.position.x+this.parallaxOffsetX,this.position.y+this.parallaxOffsetY,e.particleRadius/2,0,Math.PI*2,!0),h.closePath(),h.fill(),h.beginPath(),t=o.length-1;t>this.stackPos;t--){var n=o[t],i=this.position.x-n.position.x,r=this.position.y-n.position.y,u=Math.sqrt(i*i+r*r).toFixed(2);u<e.proximity&&(h.moveTo(this.position.x+this.parallaxOffsetX,this.position.y+this.parallaxOffsetY),e.curvedLines?h.quadraticCurveTo(Math.max(n.position.x,n.position.x),Math.min(n.position.y,n.position.y),n.position.x+n.parallaxOffsetX,n.position.y+n.parallaxOffsetY):h.lineTo(n.position.x+n.parallaxOffsetX,n.position.y+n.parallaxOffsetY))}h.stroke();h.closePath()},c.prototype.updatePosition=function(){var i,r,n,t;e.parallax&&(nt&&!g?(i=(+l)/60,v=(tt- -30)*i+0,r=(+a)/60,y=(it- -30)*r+0):(v=k,y=d),this.parallaxTargX=(v-l/2)/(e.parallaxMultiplier*this.layer),this.parallaxOffsetX+=(this.parallaxTargX-this.parallaxOffsetX)/10,this.parallaxTargY=(y-a/2)/(e.parallaxMultiplier*this.layer),this.parallaxOffsetY+=(this.parallaxTargY-this.parallaxOffsetY)/10);n=u.offsetWidth;t=u.offsetHeight;switch(e.directionX){case"left":this.position.x+this.speed.x+this.parallaxOffsetX<0&&(this.position.x=n-this.parallaxOffsetX);break;case"right":this.position.x+this.speed.x+this.parallaxOffsetX>n&&(this.position.x=0-this.parallaxOffsetX);break;default:(this.position.x+this.speed.x+this.parallaxOffsetX>n||this.position.x+this.speed.x+this.parallaxOffsetX<0)&&(this.speed.x=-this.speed.x)}switch(e.directionY){case"up":this.position.y+this.speed.y+this.parallaxOffsetY<0&&(this.position.y=t-this.parallaxOffsetY);break;case"down":this.position.y+this.speed.y+this.parallaxOffsetY>t&&(this.position.y=0-this.parallaxOffsetY);break;default:(this.position.y+this.speed.y+this.parallaxOffsetY>t||this.position.y+this.speed.y+this.parallaxOffsetY<0)&&(this.speed.y=-this.speed.y)}this.position.x+=this.speed.x;this.position.y+=this.speed.y},c.prototype.setStackPos=function(n){this.stackPos=n},et(),{option:ct,destroy:lt,start:ht,pause:st}}var i="particleground",r=n.jQuery;n[i]=function(n,t){return new u(n,t)};n[i].defaults={minSpeedX:.1,maxSpeedX:.7,minSpeedY:.1,maxSpeedY:.7,directionX:"center",directionY:"center",density:1e4,dotColor:"#666666",lineColor:"#666666",particleRadius:7,lineWidth:1,curvedLines:!1,proximity:100,parallax:!0,parallaxMultiplier:5,onInit:function(){},onDestroy:function(){}};r&&(r.fn[i]=function(n){if(typeof arguments[0]=="string"){var f=arguments[0],e=Array.prototype.slice.call(arguments,1),t;return this.each(function(){r.data(this,"plugin_"+i)&&typeof r.data(this,"plugin_"+i)[f]=="function"&&(t=r.data(this,"plugin_"+i)[f].apply(this,e))}),t!==undefined?t:this}if(typeof n=="object"||!n)return this.each(function(){r.data(this,"plugin_"+i)||r.data(this,"plugin_"+i,new u(this,n))})})})(window,document),function(){for(var i=0,t=["ms","moz","webkit","o"],n=0;n<t.length&&!window.requestAnimationFrame;++n)window.requestAnimationFrame=window[t[n]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[n]+"CancelAnimationFrame"]||window[t[n]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n){var t=(new Date).getTime(),r=Math.max(0,16-(t-i)),u=window.setTimeout(function(){n(t+r)},r);return i=t+r,u});window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()