/**
 * ...
 * @author Glidias
 */

 var GaiaTween = {
	 
	 
	 Back: {

		easeIn: function(p)
		{
		return p * p * (2.70158 * p - 1.70158);
		}
		
		,easeOut: function(p)
		{
		return (p -= 1) * p * (2.70158 * p + 1.70158) + 1;
		}
		
		,easeInOut: function(p)
		{
			if ((p *= 2) < 1)
			return .5 * p * p * (3.5949095 * p - 2.5949095);

			return .5 * ((p -= 2) * p * (3.5949095 * p + 2.5949095) + 2);
		}
	 },
	 
	 Bounce: {
		easeIn: function(p)
		{
			 p = 1-p;
		return (1 - ( p < .36363636 ? 7.5625 * p * p  : p < .72727272 ? 7.5625 * (p -= .54545454) * p + .75 : p < .90909090 ? 7.5625 * (p -= .81818181) * p + .9375 : 7.5625 * (p -= .95454545) * p + .984375));
		}
		
		,easeOut: function(p)
		{
		return ( p < .36363636 ? 7.5625 * p * p  : p < .72727272 ? 7.5625 * (p -= .54545454) * p + .75 : p < .90909090 ? 7.5625 * (p -= .81818181) * p + .9375 : 7.5625 * (p -= .95454545) * p + .984375);
		/*
		if (p < .36363636)
		return 7.5625 * p * p;
		else if (p < .72727272)
		return 7.5625 * (p -= .54545454) * p + .75;
		else if (p < .90909090)
		return 7.5625 * (p -= .81818181) * p + .9375;
		else
		return 7.5625 * (p -= .95454545) * p + .984375;
		*/
		}
		
		,easeInOut: function(p)
		{
			if (p < .5) {
				p =  1 - p*2;
			  return (1 - ( p < .36363636 ? 7.5625 * p * p  : p < .72727272 ? 7.5625 * (p -= .54545454) * p + .75 : p < .90909090 ? 7.5625 * (p -= .81818181) * p + .9375 : 7.5625 * (p -= .95454545) * p + .984375)) * .5;
			}
			
			p = p*2-1;
			return ( ( p < .36363636 ? 7.5625 * p * p  : p < .72727272 ? 7.5625 * (p -= .54545454) * p + .75 : p < .90909090 ? 7.5625 * (p -= .81818181) * p + .9375 : 7.5625 * (p -= .95454545) * p + .984375) + 1) * .5;
		}
	 },
	 
	 Circ: {
		easeIn: function(p)
		{
		return -Math.sqrt(1 - p * p) + 1;
		}
		
		,easeOut: function(p)
		{
		return Math.sqrt(1 - (p -= 1) * p);
		}
		
		,easeInOut: function(p)
		{
		return ((p *= 2) < 1) ? -.5 * (Math.sqrt(1 - p * p) - 1) : .5 * (Math.sqrt(1 - (p -= 2) * p) + 1);
		}
			
	 },
	 
	 Cubic: {
		easeIn: function(p)
		{
		 return p * p * p;
		}
		
		,easeOut: function(p)
		{
		return (p -= 1) * p * p + 1;
		}
		
		,easeInOut: function(p)
		{
		return ((p *= 2) < 1) ?  .5 * p * p * p :  ((p -= 2) * p * p + 2) * .5;
		}
		 
	 },
	 
	 Quint: {
		easeIn: function(p)
		{
		return p * p * p * p * p;
		}
		
		,easeOut: function(p)
		{
		return (p -= 1) * p * p * p * p + 1;
		}
		
		,easeInOut: function(p)
		{
		return ((p *= 2) < 1) ?   .5 * p * p * p * p * p : .5 * ((p -= 2) * p * p * p * p + 2);
		}
		 
	 }
	 
 };

 

