				/* *****************************************
				*   program: Matyrix_engine v1.0           *
				*   eredeti weboldal: Matyrix.com          *
				*   Készítette: veghsan, 25/02/2009        *
				*                                          *
				*******************************************/



/* ******************************************************************
*	Referenciák alapbeállításai
*	Szükséges referenciák:
*		-fakeflash.js v1.0
*       -virtualwindow.js v1.0
* */

	LiveFader.DefineFadeType("button", 40, -5, 0, 100, false, false);
	LiveFader.DefineFadeType("content", 40, -40, 0, 100, "block", "none");	

	
	
/* ********************************************************************
*	FakeFlash api
*		A honlapspecifikus interface
* */	
	//---------------------------------------------------------
	// API 
	// A faderek és kontentkezelés funkcióihoz biztosít 
	// átlátható hozzáférést
	API =
	{
		//--------------------------------------------------------------
		// Common :
		// Altalanos funkcionalitasok
		Common :
			{
				//------------------------------------------------------
				// ResolveIDArr : id lista objektumtombbe vissza-
				// fejtese
				// paramterek : - idList : pipeolt ID lista
				ResolveIDArr : function (idList)
				{
					idList = idList.split("|");
					var retVal = new Array();
					for (var i = 0; i < idList.length; i++)
					{
						var obj = document.getElementById(idList[i]);
						if (obj == null)
							alert("Error: API.Common.ResolveIDArr - invalid HTML id : " + idList[i]);
						else
							retVal.push(obj);
					}
					
					return retVal;
				}
			},
			
			
		//-------------------------------------------------------------
		// Effects :
		// A honlapon lévő elhalványulási,eltünési effektek kezelése
		Effects : 
			{
				//-----------------------------------------------------
				// Add : egér rávitelekor - levitelekor 
				// bekövetkező halványodás. 
				//     FELÜLÍRJA AZ EVENTEREK OnMouseOver 
				//     ÉS  OnMouseOUT    EVENTJEIT,  ÉS  A 
				//     HOZZÁJUK CSATOLT LiveFaderOnOff-OT!
				// Paraméterek: eventer  - pipeolt kiváltó objektumID lista
				//              target   - pipeolt célobjektumID lista
				//              method   - over: ravitelkor be, levitelkor ki
				//                         click: kattintaskor switch
				//              fadeType - a változás típusa
				Add : function (eventer, target, method, fadeType)
				{
					var eventers = API.Common.ResolveIDArr(eventer);
					var targets = API.Common.ResolveIDArr(target);
					var i;
					
					var gen;
					if (targets.length == 0)
						gen = LiveFader.Create(true, targets[0], fadeType);
					else
						gen = LiveFader.Create(false, targets, fadeType);
					
					if (method == "over")
						for (i = 0; i < eventers.length; i++)
						{
							eventers[i].liveFaderOver = gen;
							eventers[i].onmouseover = function(){LiveFader.On(this.liveFaderOver);}
							eventers[i].onmouseout = function(){LiveFader.Off(this.liveFaderOver);}
						}
					else if (method == "click")
						for (i = 0; i < eventers.length; i++)
						{
							eventers[i].liveFaderClick = gen;
							eventers[i].onclick = function(){LiveFader.Switch(this.liveFaderClick);};
						}
					else
						alert("Error: Effects.Add - invalid event type :" + method);
				}
			},
			
		//--------------------------------------------------------------
		// Content:
		// A honlap többszintü tartalomrendszerének kezelése
		Content :
			{
				//------------------------------------------------------
				// Add : kontent hozzaadasa.
				// parameterek: - path   : a content kivant eleresi utja
				//              - HTMLId : a contenthez rendelt HTML
				//                         elem id-je
				Add : function (path, HTMLId)
				{
					var objList = API.Common.ResolveIDArr(HTMLId);
					if (objList.length == 0)
						return;
					ContentHandler.AddContent(path, objList[0]);
				},
				
				
				//------------------------------------------------------
				// Link : gombokhoz csatol contenteket.
				// parameterek: - path : a content eleresi utja
				//              - HMTLId: pipeolt HTML id-k, a gombok
				//                  amikre klikkelve erre a contentre 
				Link : function (path, HTMLId)
				{
					var objList = API.Common.ResolveIDArr(HTMLId);
					for (var i = 0; i < objList.length; i++)
					{
						objList[i].contentPath = path;
						objList[i].onclick = 
							function()
							{
								API.SwitchToContent(this.contentPath);
							};
					}
				}
			},


		//-------------------------------------------------------------
		// Images :
		// a képek előzetes betöltésének kezelése
		Images :
			{

				//----------------------------------------------------
				// Load : kép hozzáadása a letöltéslistához.
				// Paraméterek: - path : a kép elérési útja
				//              - priority : a letöltés prioritása
				//              - team : a kép csoportneve 
				//                  (alcsoportokkal, pl. gallery/3d/2009)
				//              - HTMLId : pipeolt html id-k, amiknek ez 
				//                  lesz letöltés után a háttérképe
				//              - errorPath : hibás letöltésnél 
				//                  helyettesítő kép
				//              - onFinished : letöltés után futtatandó script
				//              - onError : hiba esetén futtatandó script
				Load : function(path, priority, team, HTMLId, errorPath, onFinished, onError)
				{
					var HTMLObjects = API.Common.ResolveHTMLArr(HTMLId);
					PreLoader.AddImage(path, priority, team, HTMLObjects, errorPath, onFinished, onError);
				},
				
				
				
				//--------------------------------------------------
				// SetPriorContent : a galériához jön jól. 
				// pl: gallery/3d/2009 -> a 3d galériát nagyobb,
				// a 2009 galériát még nagyobb prioritással tölti
				// paraméterek: - team : a kívánt csoport elérési útja
				SetPriorContent : function (team)
				{
					PreLoader.ChangePriority(2, 4);
					PreLoader.ChangePriority(3, 4);
					
					PreLoader.SetTeamPriority(team.substring(team.lastIndexOf("/")-1), 3)
					PreLoader.SetTeamPriority(team, 2);
				}
				
				
			},


		//-------------------------------------------------------
		// Projector
		// Képek és HTML tartalmak megjelenítését segítő modul.
		// A VirtualWindow modul felé biztosít API-t.
		Projector :
			{
				//-----------------------------------------------
				// AddImage : kép megnyitó gomb hozzáadása.
				// paraméterek : - path : a kép elérési útja
				//               - link : az eredeti kép linkje
				//               - btnIDs : a kiváltó gombok
				//                  pipeolt htmlID listája
				AddImage : function(path, link, btnIDs)
				{
					var btns = API.Common.ResolveIDArr(btnIDs);
					
					for (var i = 0; i < btns.length; i++)
					{
						btns[i].vw_datas = 
							{
								path : path,
								link : link
							};
						btns[i].onclick = 
							function()
							{
								var datas = this.vw_datas; 
								VirtualWindow.ShowImage(datas.path, datas.link);
							};
					}
				},
				
				//-----------------------------------------------
				// AddHTML : HTML kódot megjelenítő gomb hozzáadása.
				// paraméterek : - code : a megjelenítendő kód
				//               - link : az eredeti webhely linkje
				//               - width : a HTML ablak szélessége
				//               - height : az ablak magassága
				//               - btnIDs : a kiváltó gombok
				//                  pipeolt htmlID listája
				AddHTML : function(code, link, width, height, btnIDs)
				{
					var btns = API.Common.ResolveIDArr(btnIDs);
					
					for (var i = 0; i < btns.length; i++)
					{
						btns[i].vw_datas = 
							{
								code : code,
								link : link,
								width : width,
								height : height
							};
						btns[i].onclick = 
							function()
							{
								var datas = this.vw_datas;
								VirtualWindow.ShowHTMLCode(datas.code, datas.width, datas.height, datas.link);
							};
					}
				}
			},
			
			
			
			
			
			
			//----------------------------------------------------
			// LinkedContent : 
			// Contentek megadása a hozzájuk tartozó gombokkal 
			// együtt.
			// paraméterek : - path : a content elérési útja
			//               - divID : a hozzá tartozó div id-je
			//               - btnbgIDs : a gombeffektes divek
			//                  pipeolt IDlistája
			//               - btnsurfIDs : a gombok pipeolt
			//                  idlistája
			LinkedContent : function (path, divID, btnbgIDs, btnsurfIDs)
			{
				API.Content.Add(path, divID);
				API.Effects.Add(btnsurfIDs, btnbgIDs, "over", "button");
				API.Content.Link(path, btnsurfIDs);
			},
			
			//---------------------------------------------------
			// Content : 
			// Kapcsológomb nélküli content (a contentfa nodejai)
			// paraméterek : - path : a content elérési útja
			//               - divID : a hozzá rendelt div id-je
			NodeContent : function (path, divID)
			{
				API.Content.Add(path, divID);
			},
			
			//---------------------------------------------------
			// DivSwitch : divek ki-bekapcsolását végző gombok.
			// paraméterek : - divIDs : divek pipeolt IDlistája
			//               - btnbgIDs : gombeffektus divek pipeolt
			//                  id listája
			//               - btnsurfIDs : a gombok pipeolt 
			//                  ID listája
			DivSwitch : function (divIDs, btnbgIDs, btnsurfIDs)
			{
				API.Effects.Add(btnsurfIDs, btnbgIDs, "over", "button");
				API.Effects.Add(btnsurfIDs, divIDs, "click", "content");
			},


			//---------------------------------------------------
			// VWCreate : a VirtualWindow objektumainak 
			// dokumentumba renderelése
			VWCreate : function(borderwidth, borderheight, frozenwidth, frozenheight, loadingimage)
			{
				VirtualWindow.Implant(borderwidth, borderheight, frozenwidth, frozenheight, loadingimage);
			},
			
			
			//--------------------------------------------------
			// VWLinkedImage : a gombok megnyomására adott
			// kép megjelenítése.
			// paraméterek : - image : a kép elérési útja
			//               - link : a teljes méretű kép
			//                  elérési útja
			//               - btnbgIDs : gombeffektus divek pipeolt
			//                  id listája
			//               - btnsurfIDs : a gombok pipeolt 
			//                  ID listája
			VWLinkedImage : function (image, link, btnbgIDs, btnsurfIDs)
			{
				API.Effects.Add(btnsurfIDs, btnbgIDs, "over", "button");
				API.Projector.AddImage(image, link, btnsurfIDs);
			},
			
			
			//--------------------------------------------------
			// VWLinkedHTML : gomb megnyomására HTML kód 
			// megjelenítése a VirtualWindow-al.
			// paraméterek : - code : html kód
			//               - link : az eredeti objektum elérési útja
			//               - width : az ablak szélessége
			//               - height : az ablak magassága
			//               - btnbgIDs : gombeffektus divek pipeolt
			//                  id listája
			//               - btnsurfIDs : a gombok pipeolt 
			//                  ID listája
			VWLinkedHTML : function (code, link, width, height, btnbgIDs, btnsurfIDs)
			{
				API.Effects.Add(btnsurfIDs, btnbgIDs, "over", "button");
				API.Projector.AddHTML(code, link, width, height, btnsurfIDs); 
			},

			
			//--------------------------------------------------
			// SwitchToContent : az adott contentre vált, és
			// ez alapján módosítja a letöltendő képek
			// prioritását.
			// paraméterek : - path : a content elérési útja
			SwitchToContent : function (path)
			{
				ContentHandler.SwitchToContent(path);
				API.Images.SetPriorContent(path);
			},




			//--------------------------------------------------
			// PreLoadImage : galéria kép beállításokkal kép
			// hozzáadása a letöltéslistához.
			// paraméterek : - image : a kép elérési útja
			//               - divIDs : a divek pipeolt ID listaja,
			//                  amiknek ez lesz a hatterkepe.
			//               - team : a hozzá tartozó content
			//                 elérési útja
			PreLoadImage : function(image, divIDs, team)
			{
				PreLoader.AddImage(image, 4, team, API.Common.ResolveIDArr(divIDs), "", "", "");
			},
			
			
			//--------------------------------------------------
			// PreLoad : az előretöltés elkezdése
			// paraméterek : - images : stringtömb, a letöltendő
			//                  képek elérési útja
			//               - onProgressFunc : a letöltésbeli előrehaladáskor
			//                  lefuttatott FÜGGVÉNY
			//                  A függvény alakja: fv_name(percent)
			//               - onFinishedFunc : a letöltés befejeztével 
			//                  lefuttatott FÜGGVÉNY (paraméter nélküli)
			PreLoad : function(images, onProgressFunc, onFinishedFunc)
			{
				for (var i = 0; i < images.length; i++)
					PreLoader.AddImage(images[i], 1, "basic", null, "", 
					"if (API.PreLoadData.OnProgressFunc != null) API.PreLoadData.OnProgressFunc(PreLoader.GetProgress());", 
					"");
				
				API.PreLoadData = 
					{
						OnProgressFunc : onProgressFunc,
						OnFinishedFunc : onFinishedFunc
					};

				if (onFinishedFunc != null)
					PreLoader.onFinished = "API.PreLoadData.OnFinishedFunc();";
			}
	}
	