function copyFunction(func, arg)
{
	return function()
	{
		func(arg);
	}
} 


if(TextTween == null)
{
	var TextTween = new Object();
	
	// init parameters object
	TextTween.initData = function(containerID, blockWidth, leftID, rightID, blockCLASS, startX, tweenMode)
	{
		return{
			containerO : containerID,
			block_width : blockWidth,
			left : 0,
			leftO : leftID,
			rightO : rightID,
			block_class : blockCLASS,
			block_cnt : null,
			start_x : startX,
			tween_mode : tweenMode
		}
	}
	
	// Tween list array
	TextTween.tweens =new Array();
	
	// add a new Tween to the list
	TextTween.addTween = function(containerID, blockWidth, leftID, rightID, blockClass, startX, tweenMode)
	{
		TextTween.tweens.push(new TextTween.initData(containerID, blockWidth, leftID, rightID, blockClass, startX, tweenMode));
	}
	
	// onload Init function
	TextTween.onload = function()
	{
		for(i = 0; i<TextTween.tweens.length; i++)
		{
			tween = TextTween.create(TextTween.tweens[i]);
			tween.init();
		}
	}
	
	// create a Tween object
	TextTween.create = function(args)
	{
		return {
			params : args,
			tween : null,
			isBusy : false,
			sizeInBlock : 0,
			
			init : function()
			{
				this.params.containerO = document.getElementById(this.params.containerO);
				childs = this.params.containerO.childNodes;
				this.params.block_cnt = 0;
				for(c=0; c<childs.length; c++)
				{
					if(childs[c].className == this.params.block_class)
						this.params.block_cnt++;
				}
				this.params.start_x = (this.params.start_x != null)?this.params.start_x : 0;

				this.params.left = this.params.start_x;
				if(this.params.tween_mode == 'ulesek')  this.params.containerO.style.top = this.params.start_x + "px";
				else this.params.containerO.style.left = this.params.start_x + "px";	
				// hany blokk fer el a stage-en
				if(this.params.containerO.parentNode.style.width != "")
					this.sizeInBlock = parseInt(parseInt(this.params.containerO.parentNode.style.width) / this.params.block_width);
				else
					this.sizeInBlock = 5;
				this.params.leftO = document.getElementById(this.params.leftO);
				this.params.leftO.onclick=copyFunction(this.tweenLeft, this);
				
				this.params.rightO = document.getElementById(this.params.rightO);
				this.params.rightO.onclick = copyFunction(this.tweenRight, this);
				
				if(this.params.tween_mode == 'ulesek') this.tween = new Tween(this.params.containerO.style,'top',Tween.backEaseIn,0,300,0.6,'px');
				else this.tween = new Tween(this.params.containerO.style,'left',Tween.backEaseIn,0,300,0.6,'px');
				this.tween.onMotionFinished = copyFunction(this.onTweenEnd, this);
			},
			
			tweenLeft : function(obj)
			{
				if(!obj.isBusy)
				{
					if(obj.params.left>-(obj.params.block_cnt-obj.sizeInBlock)*obj.params.block_width + obj.params.start_x)
					{
						obj.isBusy = true;
						obj.tween.begin = obj.params.left;
						if(obj.params.tween_mode == 'gallery') {
							tmpStep=0;
							for (i=0; i<8; i++){
								if(obj.params.left-obj.params.block_width*i>-(obj.params.block_cnt-obj.sizeInBlock)*obj.params.block_width + obj.params.start_x) tmpStep=i+1;
							}
							obj.params.left -= obj.params.block_width*tmpStep;
							obj.tween.change = -obj.params.block_width*tmpStep;
						}
						else if(obj.params.tween_mode == 'ulesek') {
							tmpStep=0;
							for (i=0; i<5; i++){
								if(obj.params.left-obj.params.block_width*i>-(obj.params.block_cnt-obj.sizeInBlock)*obj.params.block_width + obj.params.start_x) tmpStep=i+1;
							}
							obj.params.left -= obj.params.block_width*tmpStep;
							obj.tween.change = -obj.params.block_width*tmpStep;
						}
						else {
							obj.params.left -= obj.params.block_width;
							obj.tween.change = -obj.params.block_width;
						}
						
						obj.tween.start();
					}
				}
			},
			
			tweenRight : function(obj)
			{
				if(!obj.isBusy)
				{
					if(obj.params.left<obj.params.start_x)
					{
						obj.isBusy = true;
						obj.tween.begin = obj.params.left;
						if(obj.params.tween_mode == 'gallery') 
						{
							tmpStep=0;
							for (i=0; i<8; i++){
								if(obj.params.left+obj.params.block_width*i<obj.params.start_x) tmpStep=i+1;
							}
							obj.params.left += obj.params.block_width*tmpStep;
							obj.tween.change = obj.params.block_width*tmpStep;
						}
						else if(obj.params.tween_mode == 'ulesek') 
						{
							tmpStep=0;
							for (i=0; i<5; i++){
								if(obj.params.left+obj.params.block_width*i<obj.params.start_x) tmpStep=i+1;
							}
							obj.params.left += obj.params.block_width*tmpStep;
							obj.tween.change = obj.params.block_width*tmpStep;
						}
						else {
							obj.params.left += obj.params.block_width;
							obj.tween.change = obj.params.block_width;
						}
						
						obj.tween.start();
					}
				}
			},
			
			
			
			onTweenEnd : function(obj)
			{
				obj.isBusy = false;
			}
		}
	}
}
//TextTween.addTween('foot_tween_container', 177, 'foot_tween_left', 'foot_tween_right', 'FootBlock');
addLoadEvent(TextTween.onload);

