										/*********************
										 * EZ LEGYEN LEGELÖL *
										 *********************/
//Ha van hash az URL végén, akkor oda ugratja az URL-t (refreshnél hasznos)
if( window.location.hash ) {
	if( window.location.hash == "#beszallokartya" ) {
		//Hívás emulálás
		Event.observe(window, "load", function() {
			var element = document.createElement("a");
			element.setAttribute("rel", "kwindow");
			element.setAttribute("module", "base");
			element.setAttribute("width", "600");
			element.setAttribute("method", "boarding_card");
			kwindow.kwindow_show(element);
		})
	}
	else {
		if( window.location.hash == "#cegasztal" ) {
			//Hívás emulálás
			Event.observe(window, "load", function() {
				var element = document.createElement("a");
				element.setAttribute("rel", "kwindow");
				element.setAttribute("module", "base");
				element.setAttribute("width", "600");
				element.setAttribute("method", "business_table");
				kwindow.kwindow_show(element);
			});
		}
		else {
			window.location.href = window.location.hash.substr(1);
		}
	}
}

/**
 * Ez a flag vigyáz arra, hogy amíg nem értek véget az el/előtűnési effektek,
 * addig ne lehessen újabb fület megnyitni.
 */
var superglobalflag = 0;

//Az itt megadott slide id-val rendelkező div lesz nyitva az oldal betöltése után
var thisFrameStart = "slide10";

//Minden itt fusson le, amihez prototype vagy scriptaculous kell
Event.observe(window, "load", function() {

	//URL alapján megállapítjuk, melyik slide legyen alapból nyitva
	//Ennélfogva az URL első szelete mindig azt adja meg, hogy melyik slide legyen nyitva, függetlenül attól, milyen tartalom jelenik meg az oldalon
	var y = window.location.href.split("/");
	if( y.length ) {
		y = y[3].substr(0,4); //Év leválasztása
		if( parseInt(y) > 0 ) thisFrameStart = "slide"+(Number(y.substr(2,2))+1);
	}

						/*****************************************\
						 * Animált fülkezelés by Nick Stakenburg *
						 * http://www.nickstakenburg.com         *
						 * Módosította: Anti - 2009.02.11.       *
	/****************                                       ***************************\
	
	/**
	 * Új metódus bevezetése az eseménykezeléshez
	 */

	Element.addMethods( ( function() {
		var f = { enter:'over', leave:'out' },
			 isEnterLeave = /^mouse(enter|leave)$/;
	
		function capture(d) {
			if( Prototype.Browser.IE ) return d;
			d = d.wrap( function(a,b) {
					var c=Object.isElement(this)?this:this.element,parent=b.relatedTarget;
					while(parent&&parent!=c) {
						try { parent=parent.parentNode } catch(e){ parent=c }
					}
					if( parent==c ) return;
					a(b)
				});
			return d
		}
	
		var g=Prototype.Browser.IE?Event.observe:function(a,b,c) {
				var a=$(a),EL=isEnterLeave.exec(b);
				if( EL ) { 
					b='mouse'+f[EL[1]];
					c=capture(c)
				}
				Event.observe(a,b,c);
				return a
			};
	
		return { customObserve:g }
		})()
	);

	
	/**
	 * A fülek váltását megvalósító osztály
	 */
	var Slideable=Class.create( {
	
		initialize: function(b) {
			this.element=$(b);
			this.options=Object.extend( {
					hoverBackground:'#101010',
					defaultBackground:'#303030',
					minimumWidth:150,
					resizeDuration:0.6,
					colorDuration:0.2,
					transition: function(a) { return ( (a/=0.5)<1?0.5*Math.pow(a,4):-0.5*((a-=2)*Math.pow(a,3)-2))}
				},
				arguments[1]||{}
			);
			this.prepare();
		},
	
		//Előkészületek: csukott fülek felveszik a pozíciójukat
		prepare: function() {
			this.wrapper = $$('.wrapper');
			if( this.wrapper.length ) this.wrapper = this.wrapper[0]; 
			this.children=this.wrapper.childElements();
			totalWidth=0;
			this._elementWidth=this.element.getWidth();
	//		this._childWidth=(this._elementWidth/this.children.length).round();
			this._childWidth=60; //Csukott állapotban a fülek szélessége
			this.children.each( function(a) {
				a._originalWidth=a.getWidth();
				totalWidth+=a._originalWidth;
				if( a.getAttribute("id") != thisFrameStart ) //Ő a kivétel, ő teljes szélességgel - azaz nyitott állapotban - indul az oldal betöltése után
					a.setStyle({width:this._childWidth+'px'}).customObserve('click',this.mouseenter.bindAsEventListener(this));
				else //Egéreseményt azért ő is kap
					a.customObserve('click',this.mouseenter.bindAsEventListener(this));
				var b=a.getStyle('backgroundColor');
				if(b) {
					a._backgroundColor=b;
					a.setStyle( {backgroundColor:b} )
				}
			}.bind(this));
			this.element.down('.wrapper').setStyle({width:totalWidth*3+'px',visibility:'visible'})
		},
	
		//Egy fülön kattintás lekezelése
		mouseenter: function(a) {
			if( superglobalflag ) return;
			var b=a.findElement('.slide');
			if(!b)return;

			//Anti ajaxot indít és tartalmat kér le aszinkron módon, hogy közben mehessen az animáció
			var year = b.href.split("/");
			year = parseInt(year[year.length-1]);

			miracle.ajax("base", "get_tabs", year, miracle.changeContent);

			var c=this.children.without(b),
			inactiveWidth=((this._elementWidth-b._originalWidth)/c.length).round();
			Effect.Queues.get('resizeable').each( function(e) {e.cancel()} );
	
			//Anti féle script, ami elő- és eltünteti a megfelelő füleket
			var slides = $$('a.slide img');
			if( slides.length ) {
				slides.each( function(sl) {
					if( sl.parentNode != b && sl.display != "none" ) {
						superglobalflag = 1;
						sl.fade({ duration: 1.5, afterFinish: function() { superglobalflag = 0; } });
					}
					else {
						sl.appear({ duration: 0.5 });
					}
				});
			}
	
			//Választott fül kinyitása
			b.morph( {backgroundColor:this.options.hoverBackground},
						{duration:this.options.colorDuration,queue:{scope:'resizeable'}}
			);
			new Effect.Morph(b,{style:{width:b._originalWidth+'px'},queue:{scope:'resizeable'},transition:this.options.transition,delay:this.options.colorDuration,duration:this.options.resizeDuration});
			//A többi fül becsukása
			new Effect.multiple(c,Effect.Morph,{style:{width:inactiveWidth+'px'},queue:{scope:'resizeable'},transition:this.options.transition,delay:this.options.colorDuration,duration:this.options.resizeDuration})
		}

	});
	/****************                                        **************************\
						 * Eddig volt Nick Stakenburg fülkezelése *
						 * http://www.nickstakenburg.com          *
						\******************************************/

	//init
	new Slideable('javascriptSlideable');

	/* PRE-INIT */
	kwindow.init();

	/* MODULES-INIT */
	moduleBase.init();

	document.onkeydown = keyDown;


}); //end of Event.observe;



										/**********
										 * COMMON *
										 **********/

//Általánosan mindenhol használható metódusokat egybegyűjtő osztály
var cCommon = function() {
	var self = this;

	//Miracle ajax hívások kezelése
	this.ajax = function(module, method, parameters, callback) {
		var options = {
			asynchronous: false, 
			method: "post",
			parameters: "module=" + module
					+ "&method=" + method
					+ "&parameters=" + JSON.stringify(parameters)
		};

		if (callback) {
			options.asynchronous = true;
			options.onSuccess = function (xmlhttp) {
				var response = eval(xmlhttp.responseText);
				callback(response);
			}
		}

		var myAjax = new Ajax.Request("/-/", options);
		if (callback) return true;

		var tmp = myAjax.transport.responseText;
		return tmp;
	}

	/**
	 * Ez az a rész, amikor a fenti nagy-nagy kártyákra kattintva a betöltött tartalmat
	 * berakja a képernyő közepére.
	 */
	this.changeContent = function (content) {
		//A választott internethajó-év lekérdezése
		var d = new Date;
		var year = window.location.hash.substr(2);
		if( !year ) year = d.getFullYear();

		//Alsó sáv váltogatása az évtől függően bannerre, vagy jelentkezési űrlapokra
		var tabCont = $("div-main-bottom");
		var tabTop = $("div-main-tabTop");
		var tabBottom = $("div-main-tabBottom");
		var extBanner = $("div-dyn-banner");
		if( year != d.getFullYear() && tabCont && tabTop && tabBottom && extBanner ) {
			tabTop.removeClassName("hide");
			tabBottom.addClassName("hide");
			tabCont.removeClassName("nobackground");
			extBanner.addClassName("hide");
		}
		else {
			tabTop.addClassName("hide");
			tabBottom.removeClassName("hide");
			extBanner.removeClassName("hide");
			tabCont.addClassName("nobackground");
		}

		//És végül a lényeg... az új tartalom berakása a megfelelő divbe
		var div = $("div-main-ajax");
		if( content && div ) {
			div.innerHTML = content;
			kwindow.init(); //Hogy működjön a fotógaléria (később videó is)
			moduleBase.init(); //Hogy működjön a Hírek, Utaslista, stb. fülek váltása
		}
	}

	//Itt a bemeneti date változó a content táblából kiolvasott és megformázott (pl. "2009-02-24 13:51:15") formában kerüljön átadásra
	this.engineDate = function(date) {
		var dArr = date.split(" ");
		date = dArr[0].split("-");

		var d_names = new Array("vasárnap", "hétfő", "kedd",
		"szerda", "csütörtök", "péntek", "szombat");
		
		var m_names = new Array("január", "február", "március", 
		"április", "május", "június", "július", "augusztus", "szeptember", 
		"október", "november", "december");
		
		var d = new Date(date[0],date[1]-1,date[2]);
		var curr_day = d.getDay();
		var curr_date = d.getDate();
		var curr_month = d.getMonth();
		var curr_year = d.getFullYear();

		return curr_year + ". " + m_names[curr_month] + " " + curr_date + ". (" + d_names[curr_day] + ") " + dArr[1].substr(0,dArr[1].length-3);
	}

}

//Az osztály példányosítása
var miracle = new cCommon();

									/************
									 * IH_VIDEO *
									 ************/

//Általánosan mindenhol használható Videos metódusokat egybegyűjtő osztály
var cIH_Video = function() {
	var self = this;

	this.init = function() {
		var videos = $$("a.change-video");
		if( videos.length ) {
			videos.each( function(v) {
				Event.observe(v, "click", function(ev) {
					Event.stop(ev);
					var params = {
						"misx": v.getAttribute("misx"),
						"misy": v.getAttribute("misy"),
						"video": v.getAttribute("video"),
						"startpic": v.getAttribute("startpic")
					}

					miracle.ajax("ih_video", "main_video", params, self.changeMainVideo);

				}.bind(v));
			});
		}
	}

	this.changeMainVideo = function(content) {
		var div = $("div-video-mainvideo");
		if( content && div ) {
			div.innerHTML = content;
		}
	}

}

//Az osztály példányosítása
var ih_video = new cIH_Video();


										/********
										 * FORM *
										 ********/

//Általánosan mindenhol használható Form metódusokat egybegyűjtő osztály
var cForm = function() {
	var self = this;

	//Cégasztal küldés előtt ellenőrzés
	this.checkBusinessTable = function() {
		return true;
	}

	//Beszállókártya küldés előtt ellenőrzés
	this.checkBoardCard = function() {
		return true;
	}

	//Cégasztal küldés előtt ellenőrzés
	this.afterPost = function() {
		moduleBase.initAddGuest();
		kwindow.init_kwindow_post();
		kwindow.init_kwindow_close();
	}

}
//Az osztály példányosítása
var form = new cForm();



										/***********
										 * MODULES *
										 ***********/

//Főoldalon megjelenő dolgok JS-eit kezeli
var cModuleBase = function() {
	var self = this;
	var cntGuest = 2;
	var contentView;
	var contentPressView;
	var newsLinks, pressLinks;

	/* INIT */
	this.init = function() {
		this.initTabs(); //Fülek kezelése
		this.initMore(); //Tovább gomb a Hírek fülön
		this.initMoreArticles(); // Még több cikk a Hírek fülön
		this.initArticles(); //A hírek fülön az egyes cikkekre kattintás
		this.initAnchors(); //Minden 'A' tag eseménykezelését leállítja + Jobb oldali menüt kezel
		this.initAddGuest(); //Vendég hozzáadása
	}

	/**
	 * INIT cégasztalon, beszállókártyán vendég hozzáadása
	 */
	this.initAddGuest = function() {
		var btnAddGuest = $$(".add_guest a");
		if( !btnAddGuest.length ) return

		//Megállapítjuk hogy hozzáadott vendég van (hogy post után ott lehessen folytatni, ahol abbahagytuk)
		var table = $$("#order table tbody tr");
		if( !table.length ) return;
		cntGuest = table.length-2+1; //Mert van két sor, ami nem számít bele és mert eggyel tovább kell folytatnia

		btnAddGuest.each( function(btn) {
			Event.observe(btn, "click", function(ev) {
				Event.stop(ev);
				self.addGuestBoardInput();
				self.addGuestBusinessInput();
			});
		});
	}
	
	/********************************
	 * Cégasztal: vendég hozzáadása *
	 ********************************/

	//INPUT mezők létrehozása Cégasztalon
	function createBusinessInput(iName) {
		var emINPUT = document.createElement("INPUT");
		emINPUT.type = "text";
		$(emINPUT).addClassName("text");
		emINPUT.name = "business_table[guests]["+cntGuest+"]["+iName+"]";
		emINPUT.id = "business_table_guests__"+cntGuest+"__"+iName+"_";
		return emINPUT;
	}

	this.addGuestBusinessInput = function() {
		var table = $$("#table-base-guest-business tbody");
		if( !table.length ) return;
		table = table[0];

		/*************************
		 * DOM elemek hozzáadása *
		 *************************/
		var emTR = document.createElement("TR");
		table.insertBefore(emTR, table.lastChild)

		var emTDName = document.createElement("TD");
		emTR.appendChild(emTDName);
		//Input mező hozzáfűzése
		emTDName.appendChild(createBusinessInput("guest_name"));

		var emTDStatus = document.createElement("TD");
		emTR.appendChild(emTDStatus);
		//Input mező hozzáfűzése
		emTDStatus.appendChild(createBusinessInput("guest_status"));

		var emTDEmail = document.createElement("TD");
		emTR.appendChild(emTDEmail);
		//Input mező hozzáfűzése
		emTDEmail.appendChild(createBusinessInput("guest_email"));

		//Következő vendég
		cntGuest++;		
	}


	/*************************************
	 * Beszállókártya: vendég hozzáadása *
	 *************************************/

	//INPUT mezők létrehozása Beszálló kártyán
	function createBoardInput(iName) {
		var emINPUT = document.createElement("INPUT");
		emINPUT.type = "text";
		emINPUT.setAttribute("classname", "text");
		$(emINPUT).addClassName("text");
		emINPUT.name = "boarding_card[guests]["+cntGuest+"]["+iName+"]";
		emINPUT.id = "boarding_card_guests__"+cntGuest+"__"+iName+"_";
		return emINPUT;
	}

	//OPTION tagek létrehozása Beszálló kártyán
	function createBoardOption(oOption, oValue, oClass) {
		var emOPTION = document.createElement("OPTION");
		emOPTION.value = oValue;
		emOPTION.innerHTML = oOption;
		$(emOPTION).addClassName(oClass);
		return emOPTION;
	}

	this.addGuestBoardInput = function() {
		var table = $$("#table-base-guest-board tbody");
		if( !table.length ) return;
		table = table[0];

		/*************************
		 * DOM elemek hozzáadása *
		 *************************/
		var emTR = document.createElement("TR");
		table.insertBefore(emTR, table.lastChild)

		var emTDName = document.createElement("TD");
		emTR.appendChild(emTDName);
		//Input mező hozzáfűzése
		emTDName.appendChild(createBoardInput("guest_name"));

		var emTDStatus = document.createElement("TD");
		emTR.appendChild(emTDStatus);
		//Input mező hozzáfűzése
		emTDStatus.appendChild(createBoardInput("guest_status"));


		var emTDType = document.createElement("TD");
		emTR.appendChild(emTDType);
		//Select hozzáfűzése
		var emSELECT = document.createElement("SELECT");
		var iName = "guest_type";
		emSELECT.name = "boarding_card[guests]["+cntGuest+"]["+iName+"]";
		emSELECT.id = "boarding_card_guests__"+cntGuest+"__"+iName+"_";
		emTDType.appendChild(emSELECT);
		emSELECT.appendChild(createBoardOption("&nbsp;", "NULL", "firstoption"));
		emSELECT.appendChild(createBoardOption("A", "A"));
		emSELECT.appendChild(createBoardOption("B", "B"));

		var emTDPhone = document.createElement("TD");
		emTR.appendChild(emTDPhone);
		//Input mező hozzáfűzése
		emTDPhone.appendChild(createBoardInput("guest_phone"));

		var emTDEmail = document.createElement("TD");
		emTR.appendChild(emTDEmail);
		//Input mező hozzáfűzése
		emTDEmail.appendChild(createBoardInput("guest_email"));

		//Következő vendég
		cntGuest++;		
	}

 
	/**
	 * A cikk tartalmának megjelenítése
	 */
	this.initMore = function() {
		newsLinks = $$("div.tab1 a.tovabb");
		contentView = $("div-news-content-view");
		contentPressView = $("div-press-content-view");

		if( newsLinks.length && contentView ) {
			newsLinks.each( function(link) {
				if( contentView.style.display != "none" ) if( !link.getAttribute("is_title") ) link.innerHTML = "vissza";
				else if( !link.getAttribute("is_title") ) link.innerHTML = "tovább";
				Event.observe(link, "click", function(ev) {
					Event.stop(ev); self.toggleContent();

					if( newsLinks.length ) {
						newsLinks.each( function(onelink) {
							if( onelink.innerHTML == "tovább" ) {
								if( !onelink.getAttribute("is_title") ) { onelink.innerHTML = "vissza"; } 
							}
							else {
								if( !onelink.getAttribute("is_title") ) { onelink.innerHTML = "tovább"; }
							}
						});
					}

				}.bind(link));
			});
		}

		pressLinks = $$("div.tab5 a.tovabb");
		if( pressLinks.length && contentPressView ) {
			pressLinks.each( function(link) {
				if( contentPressView.style.display != "none" ) if( !link.getAttribute("is_title") ) link.innerHTML = "vissza";
				else if( !link.getAttribute("is_title") ) link.innerHTML = "tovább";
				Event.observe(link, "click", function(ev) {
					Event.stop(ev); self.togglePressContent();

					if( pressLinks.length ) {
						pressLinks.each( function(onelink) {
							if( onelink.innerHTML == "tovább" ) {
								if( !onelink.getAttribute("is_title") ) { onelink.innerHTML = "vissza"; } 
							}
							else {
								if( !onelink.getAttribute("is_title") ) { onelink.innerHTML = "tovább"; }
							}
						});
					}

				}.bind(link));
			});
		}

	}

	//Tartalom div ki-bekapcsolása (Hírek)
	this.toggleContent = function() {
		if( contentView ) {
			if( contentView.style.display == "none" )
				contentView.style.display = "block";
			else
				contentView.style.display = "none";
		}
	}

	//Tartalom div ki-bekapcsolása (Sajtó)
	this.togglePressContent = function() {
		if( contentPressView ) {
			if( contentPressView.style.display == "none" )
				contentPressView.style.display = "block";
			else
				contentPressView.style.display = "none";
		}
	}


	/**
	 * "Még több cikk" gomb
	 */
	this.initMoreArticles = function() {
		var ma = $$("a.more_articles");
		if( ma.length ) {
			ma.each( function(tab) {
				Event.observe(tab, "click", function(ev) {
					Event.stop(ev);
					self.toggleMoreArticles();
					if( tab.innerHTML == "Kevesebb cikk" ) tab.innerHTML = "Még több cikk";
					else tab.innerHTML = "Kevesebb cikk";
				}.bind(tab));
			});
		}

		var ma = $$("a.more_press_articles");
		if( ma.length ) {
			ma.each( function(tab) {
				Event.observe(tab, "click", function(ev) {
					Event.stop(ev);
					self.toggleMorePressArticles();
					if( tab.innerHTML == "Kevesebb cikk" ) tab.innerHTML = "Még több cikk";
					else tab.innerHTML = "Kevesebb cikk";
				}.bind(tab));
			});
		}
	}

	//Még több cikk listájának ki-be kapcsolása (Hírek)
	this.toggleMoreArticles = function() {
		contents = $$(".ul-base-news li[more=1]");

		if( contents.length ) {
			contents.each( function(content) {
				if( content.hasClassName("hide") )
					content.removeClassName("hide");
				else
					content.addClassName("hide");
			});
		}
	}

	//Még több cikk listájának ki-be kapcsolása (Sajtó)
	this.toggleMorePressArticles = function() {
		contents = $$(".ul-base-press li[more=1]");

		if( contents.length ) {
			contents.each( function(content) {
				if( content.hasClassName("hide") )
					content.removeClassName("hide");
				else
					content.addClassName("hide");
			});
		}
	}


	/**
	 * Cikklistában cikkre kattintva a cikk ajaxos betöltése
	 */
	this.initArticles = function() {
		var articles = $$(".ul-base-news li a");

		if( articles.length ) {
			articles.each( function(article) {
				Event.observe(article, "click", function(ev) {
					Event.stop(ev);
					var p = article.href.split("/");
					params = { "url": p[p.length-1], "year" : p[p.length-2] };
					result = miracle.ajax("ih_news", "get_content_by_url_and_year", params);
					self.changeArticle(result);
				}.bind(article));
			});
		}

		var articles = $$(".ul-base-press li a");

		if( articles.length ) {
			articles.each( function(article) {
				Event.observe(article, "click", function(ev) {
					Event.stop(ev);
					var p = article.href.split("/");
					params = { "url": p[p.length-1], "year" : p[p.length-2] };
					result = miracle.ajax("ih_news", "get_content_by_url_and_year", params);
					self.changePressArticle(result);
				}.bind(article));
			});
		}
	}

	//Ajax betöltés után div-ben csere. (Hírek)
	this.changeArticle = function(content) {
		content = eval(content);
		var article = $$(".tab1 .fleft");
		if( article.length ) {
			article[0].innerHTML = '<h1><a class="tovabb" is_title="1" href="'+content["url"]+'">'+content["title"]+'</a></h1><h2><span>'+miracle.engineDate(content["appear_date"])+'</span></h2><div class="lead">'+content["lead"]+(content["content"]==''?'':'<a class="tovabb" href="+content["url"]+">tovább</a>')+'</div>';
		}

		if( contentView ) {
			contentView.innerHTML = content["content"];
		}
		self.initMore();
	}

	//Ajax betöltés után div-ben csere. (Sajtó)
	this.changePressArticle = function(content) {
		content = eval(content);
		var article = $$(".tab5 .fleft");
		if( article.length ) {
			article[0].innerHTML = '<h1><a class="tovabb" is_title="1" href="'+content["url"]+'">'+content["title"]+'</a></h1><h2><span>'+miracle.engineDate(content["appear_date"])+'</span></h2><div class="lead">'+content["lead"]+(content["content"]==''?'':'<a class="tovabb" href="+content["url"]+">tovább</a>')+'</div>';
		}

		if( contentPressView ) {
			contentPressView.innerHTML = content["content"];
		}
		self.initMore();
	}


	/**
	 * Főoldali tabok életre keltése
	 */
	this.initTabs = function() {
		var tabs = $$(".tab_container .tab");
		if( tabs.length ) {
			tabs.each( function(tab) {
				Event.observe(tab, "click", function() {
					self.tabselect(tab.getAttribute("tab"));
				}.bind(tab));
			});
		}
	}
	
	//Tabra kattintás eseménykezelése
	this.tabselect = function(ke) {
		if( !ke ) return 0;
		var tabs = $$(".tab_container .tab");
		if( tabs.length ) {
			tabs.each(function(element) {
				element.removeClassName("active");
				var tabNum = element.getAttribute('tab');
				var tabContainers = $$(".tab"+tabNum);
				if( tabContainers.length ) {
					if( !tabContainers[0].hasClassName("hide") ) tabContainers[0].addClassName("hide");
				}
				if( tabNum == ke ) { element.addClassName("active"); tabContainers[0].removeClassName("hide"); }
			});
		}
		return 1;
	}


	/**
	 * Letiltja az összes fülön a link követést (nem nyílik meg új oldal) +
	 * jobb oldali menüpontok linkcseréjét is kezeli.
	 */
	this.initAnchors = function() {
		var as = $$("a.slide", "a.tab");
		if( as.length ) {
			as.each( function(a) {
				Event.observe(a, "click", function(ev) {
					Event.stop(ev);
					var subpage = a.href.split(".hu/");
					subpage = subpage[subpage.length-1];
					window.location.hash = "/"+subpage;
				}.bind(a));
			});
		}
	}

}
//Az osztály példányosítása
var moduleBase = new cModuleBase();





			/*****************************
			 * HASZNOS DOLGOK MIRACLEBŐL *
			 *****************************/

function keyDown(event) {
	var key, e, tag;

	(e = event) || (e = window.event);
	(tag = e.target) || (tag = e.srcElement);

	if (window.event) key = window.event.keyCode;
	else if (event.which) key = event.which;
	else return true;		// Unknown browser

	// az osszes cucc, csak DEV-en megy:
	// es csak akkor ha nem inputban vagy textareaban vagyunk:
	if (window.location.href.substr(0,11)=="http://dev." && tag.tagName != "INPUT" && tag.tagName != "TEXTAREA") {
		if (key == 80) {
		     if (pvd_visible) {
				$A(document.getElementsByClassName('pvd')).each(function(element) {
					element.style.display="none";
			     });
			     pvd_visible=false;
			}
			else {
				$A(document.getElementsByClassName('pvd')).each(function(element) {
					element.style.display="block";
			     });
			     pvd_visible=true;
			}
		}

		if (key == 81) {
		     // auto formkitoltes (ha a fuggveny neve nem lenne eleg arulkodo):
		     auto_formkitoltes();
		}
	}
}


function str_replace(search, replace, subject) {
	 var result = "";
	 var oldi = 0;
	 for (var i = subject.indexOf (search); i > -1; i = subject.indexOf (search, i))
	 {
	      result += subject.substring (oldi, i);
	      result += replace;
	      i += search.length;
	      oldi = i;
	 }
	 return result + subject.substring (oldi, subject.length);
}

function loremipsum(num) {
	var szavak = new Array("alma","dió","mogyoró","körte","dinnye","málna","meggy","cseresznye","kókusz","szilva","barack","szőlő","ribizli",
		"cica","kutya","majom","zsiráf","degu","nyuszi","rozmár","zebra","cinege","mókus","koala","sün","rókakoma","motkány","jak","hal","teknős","pulyka","tatu","ürge","tapír",
		"piros","kék","sárga","zöld","türkiz","okker","fekete","fehér","lila","barna","pink","egyetem","damil","lapát","bakancs","csizma","szalonna",
		"perec","koponya","virág","monitor","indigó","toboz","tank","kifli","bolygó","csillag","por","pokróc",
		"orgona","hegedű","brácsa","gordonka","zongora","gitár","furulya","cimbalom","dob","oboa","szakszofon","cintányér","balalajka","harmónika",
		"Delhusa Johnny","Dolly Rambo",
		"Hold","Nap","Föld","Mars","Vénusz","Merkúr","Jupiter","Szaturnusz","Uránusz","Neptunusz","Plútó","naprendszer"
		);

	var str="";
	for (var i=1; i<=num; i++) {
		var k=parseInt(Math.random()*szavak.length);
		str+=szavak[k]+" ";
	}
	return str;
}

// kitolti az oldalon talalhato formokat ertelmes adatokkal:
function auto_formkitoltes() {
	var firstnames=new Array("Kis","Nagy","Toth","Magyar","Liszkai","Kovacs","Olah","Erdos","Kiskunfelegyhazi","Lorinc","Hegedus","Asztalos","Bognar");
	var lastnames=new Array("Agota","Bernadett","Karoly","Antal","Anita","Krisztian","Laszlo","Szilvia","Daniel","Robert","Noemi","Henrietta","Norbert","Zsolt","Balazs","Erika");
	var FN=firstnames.length;
	var LN=lastnames.length;

	// inputok:
	var elements=document.getElementsByTagName('input');
	var element;
	for (var ii=0; elements[ii]; ii++) {
		element=elements[ii];
		if (element.hasClassName("hide")) continue;
		var tmp=element.getAttribute('name');
		var name="";
		if (tmp) {
			var n=tmp.split("[");
			if (n[1]) name=str_replace("]","",n[1]);
		}

		if (element.getAttribute('type')=="text") {
			// ha sima input a mezo:
			// ha a neve name, akkor nevet írunk bele:
			if (name=="name" || name=="fullname") element.value=firstnames[parseInt(Math.random()*FN)]+" "+lastnames[parseInt(Math.random()*LN)];
			else if (name=="email") element.value=lastnames[parseInt(Math.random()*LN)].toLowerCase()+"@akarmi.hu";
			else if (name=="webpage" || name=="weboldal") element.value="http://www."+lastnames[parseInt(Math.random()*LN)].toLowerCase()+"_"+firstnames[parseInt(Math.random()*FN)].toLowerCase()+".hu";
			else if (name=="lastname") element.value=firstnames[parseInt(Math.random()*FN)];
			else if (name=="firstname") element.value=lastnames[parseInt(Math.random()*LN)];
			else if (element.getAttribute('accept')=="numeric") element.value=parseInt(Math.random()*82500);
			else if (name=="phone") element.value="06 30 "+parseInt(Math.random()*999)+" "+parseInt(Math.random()*999);
			else if (name=="fax") element.value="06 35 "+parseInt(Math.random()*999)+" "+parseInt(Math.random()*999);
			else element.value=loremipsum(parseInt(Math.random()*4)+1);
		}

		if (element.getAttribute('type')=="checkbox") {
			// ha checkbox, akkor 1:2-hoz bepipaljuk:
			if (parseInt(Math.random()*2)==1) element.checked=true;
			else element.checked=false;
		}
		if (element.getAttribute('type')=="radio") {
			// ha checkbox, akkor 1:2-hoz bepipaljuk:
			if (parseInt(Math.random()*2)==1) element.checked=true;
			else element.checked=false;
		}

		if (element.getAttribute('type')=="date") {
			var year=2000+(parseInt(Math.random()*14)-7);
			var month=parseInt(Math.random()*11)+1;
			if (month<10) month="0"+month;
			var day=parseInt(Math.random()*28)+1;
			if (day<10) day="0"+day;
		     element.value=year+"-"+month+"-"+day;
		}
	}


	// selectek:
	var elements=document.getElementsByTagName('select');
	var element;
	for (var ii=0; elements[ii]; ii++) {
		element=elements[ii];
		for (var j=0; element.options[j]; j++);

		if (element.getAttribute('multiple')) {
			// mindet kivesszuk:
			for (var jj=0; element.options[jj]; jj++) {
				if (element.options[jj]) element.options[jj].selected=false;
			}

			for (var jj=0; jj<parseInt(Math.random()*6); jj++) {
				var kij=parseInt(Math.random()*j);
				if (element.options[kij] && element.options[kij].value!="NULL") element.options[kij].selected=true;
			}
		}
		else {
			var kij=parseInt(Math.random()*j);
			element.selectedIndex=kij;
		}
	}

	// textareak:
	var elements=document.getElementsByTagName('textarea');
	var element;
	for (var ii=0; elements[ii]; ii++) {
		element=elements[ii];
	     element.value=loremipsum(parseInt(Math.random()*105)+1);
	}
}

