/**
 * Kontener do animacji elementów HTML;
 * @wersja 1.0;
 */
TAnimKontener	= function()
{
	var param = {klatek:30,_wsp_korekty:1,kierunek:-1,interval:100,loop:false,zegar:{},test_speed:true};
	for (var i in arguments[0]) if (typeof(arguments[0][i]!= 'function')) param[i]=arguments[0][i];
	//--
	this.obj	= _c('div',param);
	//---
	this.obj.move	= function()
	{
		if (this.id == '')	this.id = '_rid'+Math.random(1,10000000);
		efekt_move(this.id);
		clearInterval(this.cl_move);
		this.cl_move = setInterval('efekt_move("'+this.id+'")',30);
	}
	//this.obj.f_trans	= function( x ){ return Math.round( Math.pow(0.8 * x ,5) ); }
	this.obj.f_trans	=	function( x ){ return 1-Math.pow( 1-x, 4); };
	this.obj.f_korekty	= function( x ){ return this._wsp_korekty * x; }
	
	this.obj.transform	= function(param)
	{
		var efekt_id = 'transform';
		if (efekt_transform == undefined) return false;
		//--
		if (this.id == '')	this.id = '_rid'+Math.random(1,10000000);
		if (this.zegar[efekt_id]) clearInterval( this.zegar[efekt_id] );
		//--
		var liczba_klatek = this.klatek;
		//-- sprawdzenie wydajności komputerka i dostosowanie liczby klatek;
		if (this.test_speed)
			if (document.SpeedJS != undefined)
			{
				var wsp = 7 / document.SpeedJS.wynik;
				liczba_klatek = parseInt(this.klatek * wsp);
				if (liczba_klatek < 3) liczba_klatek = 3;
			}
		//----
		var start = this.style[param]
		if (start == undefined) start = '';
		start = start.replace('px','');
		if (this.start == undefined) this.start = new Array();
		if (start == '') start = 0;
		if (this.start_poz != undefined) start = this.start_poz;
		this.start[param]	= parseFloat( start );
		
		if (this.stop_poz != undefined){ this.delta = (this.stop_poz - start); }
		this.zegar[efekt_id] = setInterval('efekt_transform("'+this.id+'","'+param+'","'+liczba_klatek+'")',this.interval);
		//-- pierwsze wywołanie bez zwłoki;
		efekt_transform( this.id, param, liczba_klatek );
	}
	
	this.obj.zoom	= function()
	{
		if (this.id == '')	this.id = '_rid'+Math.random(1,10000000);
		efekt_zoom(this.id);
		clearInterval(this.cl_zoom);
		this.cl_zoom = setInterval('efekt_zoom("'+this.id+'")',40)
	}
	
	this.obj.rysuj	= function()
	{
	}
	this.obj.rysuj();
	return this.obj;
}

function efekt_move(id)
{
	var o = _get(id);
	if  (o._i_move == undefined) o._i_move = 1;
	//--
	o.style.top			= Math.pow(0.15 * o._i_move,3) + 'px';
	o._i_move	+= 1;
	//-- usuń interval czasowy;
	if (o._i_move > 80) { clearInterval(o.cl_move); o._i_move = undefined; };
}

function efekt_transform(id,param,klatek)
{
	var o = _get(id);
	if (o == undefined) return false;
	if (o._i_trans == undefined) o._i_trans = 1;
	if (klatek	== undefined) klatek	= 2;
	//--
	o.style.position	= 'relative';
	//--
	o.style[param]		= o.delta * o.f_trans( o._i_trans / klatek ) + o.start[param] + 'px';
	o._i_trans++;
	
	//-- zakończenie animacji;
	if (o._i_trans > klatek)
	{
		if (o.loop) o._i_trans = undefined;
		else 
		{
			clearInterval(o.zegar['transform']); o._i_trans = undefined;
			if (o.onTransformEnd != undefined) o.onTransformEnd(o.style[param]);
		}
	}
}

function efekt_zoom(id)
{
	var o = _get(id);
	if  (o._i_zoom == undefined) o._i_zoom = 1;

	//--
	o.style.fontSize	= o._i_zoom + 'px';
	o._i_zoom	+= 4;
	
	//-- usuń interval czasowy;
	if (o._i_zoom > 200) { clearInterval(o.cl_zoom);  o._i_zoom = undefined;}
}



