/*

    This file is part of JonDesign's SmoothGallery v2.1beta1.



    JonDesign's SmoothGallery is free software; you can redistribute it and/or modify

    it under the terms of the GNU General Public License as published by

    the Free Software Foundation; either version 3 of the License, or

    (at your option) any later version.



    JonDesign's SmoothGallery is distributed in the hope that it will be useful,

    but WITHOUT ANY WARRANTY; without even the implied warranty of

    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

    GNU General Public License for more details.



    You should have received a copy of the GNU General Public License

    along with JonDesign's SmoothGallery; if not, write to the Free Software

    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA



    Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/)

*/



gallery.Transitions.extend({

	fadeslideleft: function(oldFx, newFx, oldPos, newPos){

		oldFx.options.transition = newFx.options.transition = Fx.Transitions.Cubic.easeOut;

		oldFx.options.duration = newFx.options.duration = 1500;

		if (newPos > oldPos)

		{

			newFx.start({

				left: [this.galleryElement.offsetWidth, 0],

				opacity: 1

			});

			oldFx.start({opacity: [1,0]});

		} else {

			newFx.start({opacity: [0,1]});

			oldFx.start({

				left: [0, this.galleryElement.offsetWidth],

				opacity: 0

			}).chain(function(fx){fx.set({left: 0});}.pass(oldFx));

		}

	},

	continuoushorizontal: function(oldFx, newFx, oldPos, newPos){

		oldFx.options.transition = newFx.options.transition = Fx.Transitions.linear;

		if (

			((newPos > oldPos) || ((newPos==0) && (oldPos == (this.maxIter-1) ))) &&

			(!((newPos == (this.maxIter-1 )) && (oldPos == 0)))

		) {

			oldFx.set({opacity: 1});

			oldFx.start({

				left: [0, this.galleryElement.offsetWidth * -1]

			});

			newFx.set({opacity: 1, left: this.galleryElement.offsetWidth});

			newFx.start({

				left: [this.galleryElement.offsetWidth, 0]

			});

		} else  {

			oldFx.set({opacity: 1});

			oldFx.start({

				left: [0, this.galleryElement.offsetWidth]

			});

			newFx.set({opacity: 1, left: this.galleryElement.offsetWidth * -1});

			newFx.start({

				left: [this.galleryElement.offsetWidth * -1, 0]

			});

		}

	},

	continuousvertical: function(oldFx, newFx, oldPos, newPos){

		oldFx.options.transition = newFx.options.transition = Fx.Transitions.linear;

		if (

			((newPos > oldPos) || ((newPos==0) && (oldPos == (this.maxIter-1) ))) &&

			(!((newPos == (this.maxIter-1 )) && (oldPos == 0)))

		) {

			oldFx.set({opacity: 1});

			oldFx.start({

				top: [0, this.galleryElement.offsetHeight * -1]

			});

			newFx.set({opacity: 1, top: this.galleryElement.offsetHeight});

			newFx.start({

				top: [this.galleryElement.offsetHeight, 0]

			});

		} else  {

			oldFx.set({opacity: 1});

			oldFx.start({

				top: [0, this.galleryElement.offsetHeight]

			});

			newFx.set({opacity: 1, top: this.galleryElement.offsetHeight * -1});

			newFx.start({

				top: [this.galleryElement.offsetHeight * -1, 0]

			});

		}

	}

});
