﻿Spry.Effect.FadeBlind = function(element, options)
{
	Spry.Effect.Cluster.call(this, options);
	
	this.name = 'FadeBlind';
	var duration = 1000;
	var doToggle = false;
	var from = 100;
	var to = 0;

	if (options)
	{
		if (options.duration) duration = options.duration;
		if (options.toggle) doToggle = options.toggle;
		if (options.from) from = options.from;
		if (options.to) to = options.to;
	}

	var options = {duration: duration, from: from, to: to, toggle: doToggle};
	var blind = new Spry.Effect.Blind(element, options); 
	this.addParallelEffect(blind);

	var options = {duration: duration, from: from, to: to, toggle: doToggle};
	var fade = new Spry.Effect.Fade(element, options); 
	this.addParallelEffect(fade);
};

Spry.Effect.FadeBlind.prototype = new Spry.Effect.Cluster();
Spry.Effect.FadeBlind.prototype.constructor = Spry.Effect.FadeBlind; 

Spry.Effect.FadeSlide = function(element, options)
{
	Spry.Effect.Cluster.call(this, options);
	
	this.name = 'FadeSlide';
	var duration = 1000;
	var doToggle = false;
	var from = 100;
	var to = 0;

	if (options)
	{
		if (options.duration) duration = options.duration;
		if (options.toggle) doToggle = options.toggle;
		if (options.from) from = options.from;
		if (options.to) to = options.to;
	}

	var options = {duration: duration, from: from, to: to, toggle: doToggle};
	var slide = new Spry.Effect.Slide(element, options); 
	this.addParallelEffect(slide);

	var options = {duration: duration, from: from, to: to, toggle: doToggle};
	var fade = new Spry.Effect.Fade(element, options); 
	this.addParallelEffect(fade);
};

Spry.Effect.FadeSlide.prototype = new Spry.Effect.Cluster();
Spry.Effect.FadeSlide.prototype.constructor = Spry.Effect.FadeSlide; 

Spry.Effect.FadeSquish = function(element, options)
{
	Spry.Effect.Cluster.call(this, options);
	
	this.name = 'FadeSquish';
	var duration = 1000;
	var doToggle = false;
	var from = 100;
	var to = 0;

	if (options)
	{
		if (options.duration) duration = options.duration;
		if (options.toggle) doToggle = options.toggle;
		if (options.from) from = options.from;
		if (options.to) to = options.to;
	}

	var options = {duration: duration, from: from, to: to, toggle: doToggle};
	var squish = new Spry.Effect.Squish(element, options); 
	this.addParallelEffect(squish);

	var options = {duration: duration, from: from, to: to, toggle: doToggle};
	var fade = new Spry.Effect.Fade(element, options); 
	this.addParallelEffect(fade);
};

Spry.Effect.FadeSquish.prototype = new Spry.Effect.Cluster();
Spry.Effect.FadeSquish.prototype.constructor = Spry.Effect.FadeSquish; 

/* Portfolio Transition Effects */
function TransitionEffect(element1, element2, element3, options)
{
    var finish, secondEffect;

	this.name = 'TransitionEffect';	
	
	if (options.finish) finish = options.finish;
		
	secondEffect = new Spry.Effect.FadeSquish(element1, {duration: options.duration, from: options.to, to: options.from});
	secondEffect.addParallelEffect(new Spry.Effect.Fade(element2, {duration: options.duration, from: options.to, to: options.from}));	
	secondEffect.addParallelEffect(new Spry.Effect.Fade(element3, {duration: options.duration, from: options.to, to: options.from}));	
		
	options.finish = function()
	{	    
	    finish();
	    secondEffect.start();
	}
	
	this.FirstEffect = new Spry.Effect.FadeSquish(element1, options);	
	this.FirstEffect.addParallelEffect(new Spry.Effect.Fade(element2, {duration: options.duration, from: options.from, to: options.to}));	
	this.FirstEffect.addParallelEffect(new Spry.Effect.Fade(element3, {duration: options.duration, from: options.from, to: options.to}));	
	
}

TransitionEffect.prototype.start = function()
{
    this.FirstEffect.start();
}

TransitionEffect.prototype.constructor = TransitionEffect; 