/* MediaShow kepgaleria lepteto
** Az osztály egy példánya egy csúsztatható képgalériát valósít meg, egyszerre 2 kép látszik, a rightButtonnal és a leftButtonnal lehet léptetni.
** Egy hozzatartozo szamlaloban mutatja, hogy melyik kepeket jeleniti eppen meg, es hogy hany kep van osszesen
** A csúsztatás Tweennel van megoldva
** Jelenleg lehet tobbet is leptetni egyszerre, nem kell megvanrni, amig az animacio befejezodik.
*/
pokerAPI.mediashow = function()
{
	return{
			positionx : 0, //az aktuális eltolás
			oldalszam : 1, //ennél a képnél tart a csúszka (ez a baloldali kép sorszáma)
			kepszam : 0, //ennyi kép van összesen
			status:0, //amíg zajlik a csúsztatási animáció, addig ennek a változónak az értéke 1,ha áll 0, ennek vizsgálatával oldható meg, hogy egyszerre csak egyet lehessen léptetni
			t1 : new Tween(), 
			listenerr : new Object(),
			
			
			elementObj : new Object(), //ez a mediashow gallery referenciája, ezen belül van a container, a szamlalo és a gombok
			leftButton : new Object(),
			container : new Object(),
			rightButton : new Object(),
			szamlalo : new Object(),
			
			
			hideLeftArrow : function()
			{
				this.leftButton.style.display="none";
				this.leftButton.parentNode.className="RightArrowContainerDisabled";
			},
			
			showLeftArrow : function()
			{
				this.leftButton.style.display="block";
				this.leftButton.style.textAlign="center";
				this.leftButton.parentNode.className="RightArrowContainer";
				
			},
			
			hideRightArrow : function()
			{
				this.rightButton.style.display="none";
				this.rightButton.parentNode.className="LeftArrowContainerDisabled";
			},
			
			showRightArrow : function()
			{
				this.rightButton.style.display="block";
				this.rightButton.style.textAlign="center";
				this.rightButton.parentNode.className="LeftArrowContainer";
			},
			
			//csúsztatások a képgalérián, kiírja az aktuális oldalszámot, és ha szükséges, eltünteti vagy megjeleníti a nyilakat
			left : function ()
			{
				if(parseInt(this.oldalszam+2)<this.kepszam && this.status==0)
				{
					this.positionx=this.positionx-252;
					this.oldalszam=this.oldalszam+2;
					this.t1.continueTo(parseInt(this.positionx),1);
					this.writeIt(this);
					if(this.oldalszam!=1) this.showLeftArrow();
					if(this.oldalszam==this.kepszam || this.oldalszam==this.kepszam-1) this.hideRightArrow();
				}
				
				else if(parseInt(this.oldalszam+1)<this.kepszam && this.status==0)
				{
					this.positionx=this.positionx-126;
					this.oldalszam=this.oldalszam+1;
					this.t1.continueTo(parseInt(this.positionx),1);
					this.writeIt(this);
					if(this.oldalszam!=1) this.showLeftArrow();
					if(this.oldalszam==this.kepszam || this.oldalszam==this.kepszam-1) this.hideRightArrow();
				}
			},
			
			right : function ()
			{
				if(parseInt(this.oldalszam)>2 && this.status==0) 
				{
					this.positionx=this.positionx+252;
					this.oldalszam=this.oldalszam-2;
					this.t1.continueTo(parseInt(this.positionx),1);
					this.writeIt(this);
					if(this.oldalszam==1) this.hideLeftArrow();
					if(this.oldalszam!=this.kepszam && this.oldalszam!=this.kepszam-1) this.showRightArrow();
				}
				
				else if(parseInt(this.oldalszam)>1 && this.status==0)
				{				
					this.positionx=this.positionx+126;
					this.oldalszam=this.oldalszam-1;
					this.t1.continueTo(parseInt(this.positionx),1);
					this.writeIt(this);
					if(this.oldalszam==1) this.hideLeftArrow();
					if(this.oldalszam!=this.kepszam && this.oldalszam!=this.kepszam-1) this.showRightArrow();
				}
			},
			
			
			
			
			
			
			
			// a counter értékét írja ki
			writeIt : function (obj)
			{
			g=this.oldalszam+1;
			if(this.kepszam==0)this.szamlalo.innerHTML="0-0 / 0";
			else if(this.kepszam==1)this.szamlalo.innerHTML="1 / 1";
			else {this.szamlalo.innerHTML=this.oldalszam+"-"+g+" / "+this.kepszam;}
			},
			
			//inicializálás, paraméterként kapja a mediashow galéria referenciáját
			Class : function (obj)
			{
				var a = 0;
				elementObj = obj;
				
				tartalom = elementObj.getElementsByTagName("DIV");
				
				//referenciák beállítása
				for(i = 0; i < tartalom.length; i ++ )
				{
					if (tartalom[i].className.indexOf("kijelzo") > - 1) {this.szamlalo=tartalom[i];}
					if (tartalom[i].className.indexOf("LeftArrow") > - 1) {this.leftButton=tartalom[i];}
					if (tartalom[i].className.indexOf("elemek") > - 1) {this.container=tartalom[i];}
					if (tartalom[i].className.indexOf("RightArrow") > - 1) {this.rightButton=tartalom[i];}
				}
				
				//megszámolja, hogy hány kép van összesen
				pictures = this.container.getElementsByTagName("IMG");
				for(a = 0; a < pictures.length; a ++ );			
				this.kepszam = a;

				//ez kell az eventekhez! külön névtérbe ugrik ki utána az ezzel meghívott függvény, ezért a megfelelo referenciákat át kell adni, hogy a példányt el lehessen érni!
				function copyFunction(func, arg)
			    {
			        return function()
			        {
			           func(arg); 
			        }
			    }   
				
				function writeIt(){szamlalo.innerHTML=oldalszam;}
				
				//bal és jobbgombra kattintés eseményei
				clickEventLeft = function(obj)
			    {
					obj.right();
			    }
				
				clickEventRight = function(obj)
			    {
					obj.left();
			    }
				
				//események bekötése
			    this.leftButton.parentNode.onclick = copyFunction(clickEventLeft, this);
				this.rightButton.parentNode.onclick = copyFunction(clickEventRight, this);
				
				//Tween inicializálása és rákötése a containerre, és hozzá egy listener inicializálása, ,ami a tween példány onMotionFinished és onMotionStarted esemményeit figyeli. 
				listenerr= new Object();
				elem = this.container;
				this.t1=new Tween(elem.style,'left',Tween.regularEaseInOut,parseInt(elem.style.left),10,1,'px');
				this.listenerr.onMotionFinished = function(){this.status=0;};
				this.listenerr.onMotionStarted = function(){this.status=1;};
				this.t1.addListener(this.listenerr);
				
				this.writeIt(obj);
			}
  };
}

pokerAPI.mediashow.menuObj = null;
divss=document.getElementsByTagName("DIV");
var mediashows = new Array();

function loadInitMenu() {
	try
   {
		var i=0;
		for(i = 0; i < divss.length; i ++ )
		{	//megkeresi a mediashow galleryket, és berakja oket egy tömbbe
			if (divss[i].className.indexOf("tabla") > - 1) 
			{
			
				pokerAPI.mediashow.menuObj = new pokerAPI.mediashow();
				pokerAPI.mediashow.menuObj.Class(divss[i]);
				mediashows.push(pokerAPI.mediashow.menuObj);
			}
		}
   }
   catch(e)
   {
      alert(e);
   }
}
addLoadEvent(loadInitMenu);

