// JavaScript Document

/* slide effect class */
var ISW_SlideFx = new Class({
		initialize: function( slideElement, inside ){
			this.slideElement = slideElement;
			this.isDisplayed = true;
			
			this.sliderHeight = this.slideElement.offsetHeight;
			this.currHeight = this.sliderHeight;
	
			this.sliderWrapper = new Element('div');
			this.intervalID = null;
			
			if ( inside )
            {
              //wrap inside
				while ( this.slideElement.hasChildNodes() )
				{
					var firstChild = this.slideElement.removeChild( this.slideElement.firstChild );
					this.sliderWrapper.appendChild( firstChild );
					
				}			
			this.slideElement.appendChild( this.sliderWrapper );
		    } 
			else
			{
			/*wrap outside*/
				this.slideElement.parentNode.insertBefore( this.sliderWrapper, this.slideElement );
				var removed = this.slideElement.parentNode.removeChild( this.slideElement );
				this.sliderWrapper.appendChild( removed );			
			}
			
			this.sliderWrapper.setStyle('overflow', 'hidden');			
		
	
		},
		slideOut: function()
		{
			var reducer = function(){
				this.currHeight-=50;
				if ( this.currHeight <= 0 )
				{
					$clear( this.intervalID );
					this.sliderWrapper.setStyle('height', '0px');
				}
				else
				{
				  this.sliderWrapper.setStyle('height', this.currHeight+'px');
				}
			};
			
			 if ( this.intervalID ) { $clear( this.intervalID );}
		     this.sliderHeight = this.slideElement.offsetHeight;
			 this.intervalID = reducer.periodical( 10, this);
			 this.isDisplayed = false;
		},
		slideIn: function()
		{
			this.show();//this is necessary as work-around for bug in Firefox
			
			var grower = function(){
				this.currHeight+=20;
				if ( this.currHeight >= this.sliderHeight )
				{
					$clear( this.intervalID );
	                this.sliderWrapper.setStyle('height', (this.sliderHeight) +'px');					
				}
				this.sliderWrapper.setStyle('height', this.currHeight +'px');
			};
			
			if ( this.intervalID ) { $clear( this.intervalID );}
			this.currHeight = 0;
			this.sliderHeight = this.slideElement.offsetHeight;
			this.intervalID = grower.periodical( 10, this);
			this.isDisplayed = true;
		},
		toggle: function()
		{
			if ( this.isDisplayed )
			{
			  this.slideOut();	
			}
			else
			{
			  this.slideIn();	
			}
		},
		hide: function()
		{			
	     	this.sliderHeight = this.slideElement.offsetHeight;	
			this.sliderWrapper.setStyle('height', '0px');
			this.isDisplayed = false;			
		},
		show: function()
		{
			
			this.sliderHeight = this.slideElement.offsetHeight;
			this.sliderWrapper.setStyle('height', this.sliderHeight +'px');
			this.isDisplayed = true;			
		}
		


 });



/***********************************************************************/
/* this works by manipulating the display attribute*/

var ISW_DisplayFx = new Class({
		initialize: function( slideElement ){
			this.slideElement = slideElement;
			this.isDisplayed = true;						
	
		},
		slideOut: function()
		{
             this.slideElement.setStyle( 'display', 'none');
			 this.isDisplayed = false;
		},
		slideIn: function()
		{
            this.slideElement.setStyle( 'display', 'block');
			this.isDisplayed = true;
		},
		toggle: function()
		{
			if ( this.isDisplayed )
			{
			  this.slideOut();	
			}
			else
			{
			  this.slideIn();	
			}
		},
		hide: function()
		{
             this.slideElement.setStyle( 'display', 'none');
			 this.isDisplayed = false;
		},
		show: function()
		{
            this.slideElement.setStyle( 'display', 'block');
			this.isDisplayed = true;
		}
		


 });

