var observer = {};

observer.nextEffect = false;
observer.onPostEffect = function(){
if (this.nextEffect)
{
var eff = this.nextEffect;
setTimeout(function(){eff.start();}, 10);
}

this.nextEffect = false;
}

function myPanelsSlides(currentPanel)
{
// The list of all the panels that need sliding
var panels = ['slide1', 'slide2', 'slide3', 'slide4', 'slide5'];
var opened = -1;

// Let's check if we have an effect for each of these sliding panels
if (typeof effects == 'undefined')
effects = {};

for (var i=0; i < panels.length; i++)
	{
		if (typeof effects[panels[i]] == 'undefined'){
			effects[panels[i]] = new FadeSlide(panels[i], {from: '0%', to: '100%', toggle: true});
			effects[panels[i]].addObserver(observer);
		}
		 
		if (effects[panels[i]].direction == Spry.forwards && currentPanel != panels[i])
			opened = i;

		//prevent too fast clicks on the buttons
		if (effects[panels[i]].direction == Spry.backwards && effects[panels[i]].isRunning)
		{
			observer.nextEffect = effects[currentPanel];
			return;
		}
	}

	if (opened != -1)
	{
		observer.nextEffect = effects[currentPanel];
		effects[panels[opened]].start();
	} 
	else if (effects[currentPanel].direction != Spry.forwards)
	{
		effects[currentPanel].start();
	}
};
