// *************************************************************************************
// *************************************************************************************
// *********************                                           *********************
// *********************            ARTICLES SLIDESHOW v1.0        *********************
// *********************                                           *********************
// *************************************************************************************
// *************************************************************************************


// Constructor
ArticlesSlideShow = function(TableId,TableWidth,TableHeight,SlidesMargin,MotionType,SelectedFontColor,SelectedTabColor,UnselectedFontColor,UnselectedTabColor)
{
	this.unselfontcolor=UnselectedFontColor;
	this.unseltabcolor=UnselectedTabColor;
	this.selfontcolor=SelectedFontColor;
	this.seltabcolor=SelectedTabColor;
	this.slides_list=new Array();
	this.tabs_list=new Array();
	this.margin=SlidesMargin; // In pixels
	this.mtype=MotionType; // 0 = Horizontal, 1 = Vertical
	
	var o = document.getElementById(TableId);
	
	if (o)
	{
		o.style.height=TableHeight+"px";
		o.style.width=TableWidth+"px";
	
		var e = o.getElementsByTagName("div");
		
		if (e)
		{
			if (e.length>0)
			{
				for (i=0;i<e.length;i++)
				{
					if (e[i].id=="ArtSlidesContainer")
					{
						this.slides_container=e[i];
					}
					
					if (e[i].id=="ArtSlidesBar")
					{
						this.slides_bar=e[i];
					}
					
					if (e[i].id=="ArtSlide")
					{
						this.slides_list.push(e[i]);
					}
				}
	
				e = o.getElementsByTagName("td");
				
				if (e)
				{
					if (e.length>0)
					{
						for (i=0;i<e.length;i++)
						{
							if (e[i].id=="ArtSlidesTab")
							{
								this.tabs_list.push(e[i]);
							}
						}
					}
				}
				
				if (this.slides_container && this.slides_bar && 
					this.slides_list && this.tabs_list)
				{
					if (this.slides_list.length>0 && this.tabs_list.length>0 && 
						this.slides_list.length==this.tabs_list.length)
					{
						this.slides_container.style.overflow="hidden";
						this.slides_container.style.width=parseInt(o.style.width)+"px";
						this.slides_container.style.height=parseInt(o.style.height)+"px";
						this.slides_bar.style.position="relative";
					
						for (i=0;i<this.slides_list.length;i++)
						{
							this.slides_list[i].style.position="absolute";
							this.slides_list[i].style.width=parseInt(this.slides_container.style.width)+"px";
							this.slides_list[i].style.height=parseInt(this.slides_container.style.height)+"px";
							this.slides_list[i].style.margin=this.margin+"px";
	
							e = this.slides_list[i].getElementsByTagName("div");
							
							if (e)
							{
								if (e.length>0)
								{
									for (x=0;x<e.length;x++)
									{
										if (e[x].id=="ArtContWrapper")
										{
											e[x].style.overflow="hidden";
											e[x].style.width=(parseInt(this.slides_container.style.width)-(this.margin*2))+"px";
											e[x].style.height=(parseInt(this.slides_container.style.height)-(this.margin*2))+"px";
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

// Selects the specified tab
ArticlesSlideShow.prototype.select_tab = function(TabIndex)
{
	if (this.tabs_list)
	{
		if (TabIndex>=0 && TabIndex<this.tabs_list.length)
		{
			for (x=0;x<this.tabs_list.length;x++)
			{
				if (x==TabIndex)
				{
					this.tabs_list[x].style.backgroundColor=this.seltabcolor;
					this.tabs_list[x].style.color=this.selfontcolor;
				}
				else
				{
					this.tabs_list[x].style.backgroundColor=this.unseltabcolor;
					this.tabs_list[x].style.color=this.unselfontcolor;
				}
			}
		}
	}
}

// Moves to the specified slide
ArticlesSlideShow.prototype.show_slide = function(TabObj)
{
	if (this.slides_bar && this.slides_list && this.tabs_list)
	{
		for (t=0;t<this.tabs_list.length;t++)
		{
			if (this.tabs_list[t]==TabObj)
			{
				this.select_tab(t);
			
				if (this.slides_list[t])
				{
					switch (this.mtype)
					{
					case 0: // Horizontal
						{
							var start_x=parseInt(this.slides_bar.style.left);
							var end_x=parseInt(this.slides_list[t].style.left);
							
							if (end_x > start_x)
							{
								end_x=(-end_x);
							}
							
							// Uncomment this line for show the slide
							// **** WITHOUT TWEENNING ANIMATION ****
							//this.slides_bar.style.left=end_x+"px";
							
							// Uncomment this line for show the slide
							// **** WITHIN TWEENNING ANIMATION ****
							var anim = new Tween(this.slides_bar.style, 'left', Tween.regularEaseInOut, start_x, end_x, 1, 'px');

							break;
						}
						
					case 1: // Vertical
						{
							var start_y=parseInt(this.slides_bar.style.top);
							var end_y=parseInt(this.slides_list[t].style.top);
							
							if (end_y > start_y)
							{
								end_y=(-end_y);
							}
							
							// Uncomment this line for show the slide
							// **** WITHOUT TWEENNING ANIMATION ****
							//this.slides_bar.style.top=end_y+"px";
							
							// Uncomment this line for show the slide
							// **** WITHIN TWEENNING ANIMATION ****
							var anim = new Tween(this.slides_bar.style, 'top', Tween.regularEaseInOut, start_y, end_y, 1, 'px');

							break;
						}
					}
					
					if (anim)
					{
						anim.start();
					}
				}
			}
		}
	}
}

// Initilizates all the slides inside of the container
ArticlesSlideShow.prototype.initialize = function()
{
	if (this.slides_bar && this.slides_list)
	{
		switch (this.mtype)
		{
		case 0: // Horizontal
			{
				this.slides_bar.style.left="0px";
				break;
			}
			
		case 1: // Vertical
			{
				this.slides_bar.style.top="0px";
				break;
			}
		}
		
		this.select_tab(0);
		
		for (i=0;i<this.slides_list.length;i++)
		{
			if (this.slides_list[i])
			{
				switch (this.mtype)
				{
				case 0: // Horizontal
					{
						this.slides_list[i].style.left=(parseInt(this.slides_container.style.width)*i)+"px";
						break;
					}
					
				case 1: // Vertical
					{
						this.slides_list[i].style.top=(parseInt(this.slides_container.style.height)*i)+"px";
						break;
					}
				}
			}
		}
	}
}