// ../script/ACRunActiveContent.js -> kinyomva	
// ../script/ajax.js -> kinyomva	
// ../script/dialogManager.js -> kinyomva	
// ../script/scripthu.js -> kinyomva	
//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
	
	
var ajaxcomm = 0;
var ajaxArray = new Array();
var cSearch = "";

function fCheckAnswer(){
	var strsrc = new String("");
	
	w = 0;
	obj = fGetObject("radio_g_" + String(++w));
	aid = -1;

	while(obj){		
		strsrc = String(obj.src);
		if(strsrc.substr(strsrc.lastIndexOf("/")+1) == "radio_button_s.gif"){
			aid = fGetObject("answer_id_" + String(w)).value;
		}
		obj = fGetObject("radio_g_" + String(++w));
	}
	
	if(aid == -1){
		//alert("Nem jelölt választ!");
		fGetObject("game_6").innerHTML = "Nem jelölt választ!";
	}else{
		
		w = 0;
		obj = fGetObject("radio_g_" + String(++w));
		while(obj){		
			obj.onclick = "";
			obj = fGetObject("radio_g_" + String(++w));
		}
		
		ajaxArray.push(Array("doajax.php?type=gamecheckanswer","id="+String(aid),"commGateCheckAnswer"));
		fCallxmlhttpPost();
	}
}

function commGateCheckAnswer(str){
	ajaxcomm = 0;
	var aTmp = fGetToken(str, "<karavan>");
	
	if(aTmp[0] > 0){
		obj = fGetObject("game_all");
		num = Number(obj.innerHTML);
		num++;
		obj.innerHTML = String(num);
		fGetObject("game_all_2").innerHTML = String(num);
		
		if(aTmp[1] == 1){
			obj = fGetObject("game_true");
			num = Number(obj.innerHTML);
			num++;
			obj.innerHTML = String(num);
			fGetObject("game_true_2").innerHTML = String(num);
			//fGetObject("game_5").innerHTML = 'Helyesen válaszolt!';
		}
		
		fGetObject("game_5").innerHTML = 'A helyes válasz: "' + aTmp[2] + '"';
		
		fGetObject("answer_id_2_"+String(aTmp[4])).style.color = "#efa52a";		
		
		fGetObject("game_6").innerHTML = aTmp[3];
	}
	
	var tmpall = Number(fGetObject("game_all").innerHTML);
	if(tmpall > 9){
		fGetObject("game_true2").innerHTML = fGetObject("game_true").innerHTML;
		fGetObject("div_game_1").style.display = "none";
		fGetObject("div_game_2").style.display = "block";
	}
}

function fGetNextGame(){
	var strtmp = new String(fGetObject("game_5").innerHTML);
	strtmp = strtmp.toLowerCase();
	
	if(strtmp.substr(0,3) == "<a "){
		w = 0;
		obj = fGetObject("radio_g_" + String(++w));
		aid = -1;
		while(obj){		
			strsrc = String(obj.src);
			if(strsrc.substr(strsrc.lastIndexOf("/")+1) == "radio_button_s.gif"){
				aid = fGetObject("answer_id_" + String(w)).value;
				break;
			}
			obj = fGetObject("radio_g_" + String(++w));
		}
		
		if(aid == -1){
			obj = fGetObject("game_all");
			num = Number(obj.innerHTML);
			num++;
			obj.innerHTML = String(num);
			fGetObject("game_all_2").innerHTML = String(num);
		}else{
			//alert("Előbb kiértékelem a válaszát!");
			fCheckAnswer();
			return;
		}
	}
	
	for(w=1;w<6;w++){
		fGetObject("game_"+String(w)).innerHTML = "frissítés...";
	}
	fGetObject("game_6").innerHTML = "&nbsp;";
	
	ajaxArray.push(Array("doajax.php?type=getnextgame","ids="+String(fGetObject("game_ids").value),"commGateNextGame"));
	fCallxmlhttpPost();
}

function commGateNextGame(str){
	ajaxcomm = 0;
	var aTmp = fGetToken(str, "<karavan>");
	
	var tmpall = Number(fGetObject("game_all").innerHTML);
	if(tmpall > 9){
		fGetObject("game_true2").innerHTML = fGetObject("game_true").innerHTML;
		fGetObject("div_game_1").style.display = "none";
		fGetObject("div_game_2").style.display = "block";
	}else{
		
		if(aTmp[0] > 0){
			if(aTmp[0] == 2)
				fGetObject("game_ids").value = "-1," + String(aTmp[1]);
			else
				fGetObject("game_ids").value = fGetObject("game_ids").value + "," + String(aTmp[1]);
				
			fGetObject("game_3").innerHTML = aTmp[2];
			fGetObject("game_1").innerHTML = aTmp[3];
			fGetObject("game_2").innerHTML = aTmp[4];
			fGetObject("game_4").innerHTML = aTmp[5];
			fGetObject("game_5").innerHTML = "<a href='javascript:fCheckAnswer()'>válasz kiértékelése</a>";
		}
	}
}

function  fAddForum(){
	var strnick = new String(fGetObject("snick").value);
	var strpass = new String(fGetObject("spass").value);
	var stremail = new String(fGetObject("semail").value);
	
	if(strnick == "nick"){
		dialogManager.add(new Dialog('A nick név megadása kötelező!', 'alert'));	
		return false;
	}
	
	if(strpass == "jelszó"){
		dialogManager.add(new Dialog('A jelszó megadása kötelező!', 'alert'));			
		return false;
	}
	
	if(stremail == "e-mail"){
		dialogManager.add(new Dialog('Az e-mail cím megadása kötelező!', 'alert'));			
		return false;
	}
		
	
	if(stremail.indexOf("@") == -1 || stremail.indexOf(".") == -1){
		fGetObject("semail").value = "E-mail cím";
		dialogManager.add(new Dialog('Az e-mail cím formátuma nem megfelelő', 'alert'));			
	}else{
		fGetObject("div_hirlevel").innerHTML = "feldolgozás...";
			
		ajaxArray.push(Array("../doajax.php?type=addforum","&pnick="+strnick+"&ppass="+strpass+"&pemail="+stremail,"commGateAddForum"));
		fCallxmlhttpPost();	
	}
	
	return false;
}

function commGateAddForum(str){
	ajaxcomm = 0;
	var aTmp = fGetToken(str, "<maksz>");
	if(aTmp[0] != -1)
		eval(aTmp[1]);
		
	fGetObject("div_hirlevel").innerHTML = '<table border="0" cellspacing="0" cellpadding="0"><tr><td class="form_cim" style="padding-bottom:10px;">Szükséges adatok</td></tr><tr><td style="padding-bottom:8px;"><input type="text" id="snick" name="snick" class="form_item3" value="nick" style="width:400px;" onfocus="if(this.value==\'nick\') this.value=\'\'" onblur="if(this.value==\'\') this.value=\'nick\'" /></td></tr><tr><td style="padding-bottom:8px;"><input type="text" id="spass" name="spass" class="form_item3" value="jelszó" style="width:400px;" onfocus="if(this.value==\'jelszó\') this.value=\'\'" onblur="if(this.value==\'\') this.value=\'jelszó\'" /></td></tr><tr><td style="padding-bottom:8px;"><input type="text" id="semail" name="semail" class="form_item3" value="e-mail" style="width:400px;" onfocus="if(this.value==\'e-mail\') this.value=\'\'" onblur="if(this.value==\'\') this.value=\'e-mail\'" /></td></tr><tr><td align="left"><div><input type="image" src="../img/hr_belep.jpg"></div></td></tr></table>';
}

function fAddHirlevel(pLang){
	var stremail = new String(fGetObject("semail").value);
	var strnev = new String(fGetObject("sfnev").value);
	
	if(strnev == "Teljes név"){
		dialogManager.add(new Dialog('A név megadása kötelező!', 'alert'));	
		return false;
	}
	
	if(stremail == "E-mail cím"){
		dialogManager.add(new Dialog('Az e-mail cím megadása kötelező!', 'alert'));			
		return false;
	}
		
	
	if(stremail.indexOf("@") == -1 || stremail.indexOf(".") == -1){
		fGetObject("semail").value = "E-mail cím";
		dialogManager.add(new Dialog('Az e-mail cím formátuma nem megfelelő', 'alert'));			
	}else{
		fGetObject("div_hirlevel").innerHTML = "feldolgozás...";
		
		ajaxArray.push(Array("../doajax.php?type=addhirlevel","&pemail="+stremail+"&plang=hu&pname="+strnev,"commGateAddHirlevel"));
		fCallxmlhttpPost();	
	}
	
	return false;
}

function commGateAddHirlevel(str){
	ajaxcomm = 0;
	var aTmp = fGetToken(str, "<maksz>");
	if(aTmp[0] != -1)
		eval(aTmp[1]);
		
	fGetObject("div_hirlevel").innerHTML = '<table border="0" cellspacing="0" cellpadding="0"><tr><td class="form_cim" style="padding-bottom:10px;">Szükséges adatok</td></tr><tr><td style="padding-bottom:8px;"><input type="text" id="sfnev" name="sfnev" class="form_item3" value="Teljes név" style="width:400px;" onfocus="if(this.value==\'Teljes név\') this.value=\'\'" onblur="if(this.value==\'\') this.value=\'Teljes név\'" /></td></tr><tr><td style="padding-bottom:8px;"><input type="text" id="semail" name="semail" class="form_item3" value="E-mail cím" style="width:400px;" onfocus="if(this.value==\'E-mail cím\') this.value=\'\'" onblur="if(this.value==\'\') this.value=\'E-mail cím\'" /></td></tr><tr><td align="left"><div><input type="image" src="../img/hr_belep.jpg"></div></td></tr></table>';
}

function fSelectEvent(eid, strtype, datum){
	fGetObject("event_1").innerHTML = "frissítés...";
	
	ajaxArray.push(Array("../doajax.php?type=event_select","&eid="+String(eid)+"&etype="+String(strtype)+"&datum="+String(datum),"commGateSelectEvent"));
	fCallxmlhttpPost();	
}

function commGateSelectEvent(str){
	ajaxcomm = 0;
	var aTmp = fGetToken(str, "<maksz>");
	
	if(aTmp[0] == 1){
		obj = fGetObject("event_1");
		if(obj)
			obj.innerHTML = aTmp[1];
	}else
		fGetObject("event_1").innerHTML = "<b>Probléma a feldolgozás során!<br>Kérjük próbálja meg újból.</b>";
		
	try{
		myLightbox.updateImageList();
	}catch(err){
	}
}

function fShowHrSearch(){
	fGetObject("hrsearch_detail").style.display = "none";
	fGetObject("hrsearch_detail").innerHTML = "";
	fGetObject("hrsearch").style.display = "block";
}

function fShowHrDetail(pId){
	ajaxArray.push(Array("../doajax.php?type=loadcw","pid="+String(pId),"commGateLoadCw"));
	fCallxmlhttpPost();
}

function commGateLoadCw(str){
	ajaxcomm = 0;
	var aTmp = fGetToken(str, "<maksz>");
	
	tmp = '';
	if(aTmp[0] == -1){
		tmp = '<div style="padding-top:10px; padding-bottom:10px; border-bottom:1px solid #e7e7e7;">'+aTmp[1]+'</div>';
	}else{
		q = 1;
		tmp += '<div style="padding-top:10px; padding-bottom:10px; border-bottom:1px solid #e7e7e7;"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td rowspan="2" align="left" valign="top" width="165"><img src="../file_cw/'+aTmp[q]+'" width="150" /></td><td style="padding-bottom:10px;" valign="bottom" height="1">'+aTmp[q+1]+' | <font color="#450934" style="font-weight:bold;">'+aTmp[q+2]+'</font><div style="padding-top:10px;">E-mail: <a href="mailto:'+aTmp[q+6]+'" class="link_hr1">'+aTmp[q+6]+'</a></div><div style="padding-top:3px;">Telefon: '+aTmp[q+7]+'</div></td></tr>	<tr><td valign="top" style="text-align:justify;">'+aTmp[q+3]+'<div style="padding-top:10px;"><a href="../file_cw/'+aTmp[q+5]+'" target="_blank" class="link_hr1">cw letöltése >></a></div></td></tr></table></div><div style="padding-top:10px;"><a href="javascript:fShowHrSearch()" class="link_hr1"><<&nbsp;vissza a találatokhoz</a></div>';
	}
	
	fGetObject("hrsearch").style.display = "none";
	fGetObject("hrsearch_detail").style.display = "block";
	fGetObject("hrsearch_detail").innerHTML = tmp;	
}

function fSearch(obj){
	if(obj.value != cSearch){	
		obj2 = fGetObject("content");
		if(obj2)
			obj2.style.display = "none";
			
		obj2 = fGetObject("searchresult");
		if(obj2)
			obj2.style.display = "block";
			
		cSearch = obj.value;
		if(obj.value.length > 2){
			fGetObject("searchresult").innerHTML = '<table width="480" border="0" cellspacing="0" cellpadding="0"><tr><td width="22" align="left" valign="top">&nbsp;</td><td width="458" align="left" valign="top">&nbsp;</td></tr><tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top" class="news5">Találatok</td></tr><tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td></tr><tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">frissítés...</td></tr></table>';
			xmlhttpPostSearch("../doajax.php?type=search", "str_search="+String(obj.value), "commGateSearch");
		}else if(obj.value.length > 0){
			tmp = '<table width="480" border="0" cellspacing="0" cellpadding="0"><tr><td width="22" rowspan="4" align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td></tr><tr><td align="left" valign="top" class="news5">Találatok</td></tr><tr><td align="left" valign="top">&nbsp;</td></tr><tr><td align="left" valign="top">a keresés a harmadik leütött karaktertol indul</td></tr></table>';
			obj2 = fGetObject("searchresult");
			if(obj)
				obj2.innerHTML = tmp;
		}else{
			obj2 = fGetObject("searchresult");
			if(obj2)
				obj2.style.display = "none";
				
			obj2 = fGetObject("content");
			if(obj2)
				obj2.style.display = "block";
		}
	}
}

function commGateSearch(str){
	var aTmp = fGetToken(str, "<maksz>");
	var aSearch = new Array;
	var vszam = new Number(0);
	
	tmp = '<table width="480" border="0" cellspacing="0" cellpadding="0"><tr><td width="22" rowspan="4" align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td></tr><tr><td align="left" valign="top" class="news5">Találatok</td></tr><tr><td align="left" valign="top">&nbsp;</td></tr><tr><td align="left" valign="top">';
	
	if(aTmp[0] == -1)
		tmp += 'nincs a keresési feltételnek megfelelő tétel';
	else{
		for(q=1; q<aTmp.length; q++){
			tmp += '<div style="border-top:1.5px dotted #53533C; padding-bottom:10px; padding-top:5px; width:450px"><table width="450" border="0" cellspacing="0" cellpadding="0"><tr><td align="left" valign="middle">'+aTmp[q]+'<div style="padding-top:5px;" align="right"><a class="link_news1" href="'+aTmp[++q]+'">tovább ></a></div></td></tr></table></div>';
		}
		
		tmp += '<div style="border-top:1.5px dotted #53533C; padding-bottom:10px; padding-top:5px;">&nbsp;</div>';
	}
	
	tmp += '</td></tr></table>';
	
	obj2 = fGetObject("searchresult");
	if(obj2)
		obj2.innerHTML = tmp;
}

function fSearchHr(){
	q = -1;
	strid = new String("");
	obj = fGetObject("hr_checkid_"+String(++q));
	while(obj){
		if(fGetObject("hr_check_"+String(obj.value)+"_v").value == 1)
			strid += String(obj.value)+",";
			
		obj = fGetObject("hr_checkid_"+String(++q));
	}
	
	strid = strid.substr(0, strid.length-1);
	
	strsearch = new String(fGetObject("input_hrserach").value);
	
	if(strsearch == "Kulcsszó")
		strsearch = "";
		
	fGetObject("hrsearch_detail").style.display = "none";
	fGetObject("hrsearch_detail").innerHTML = "";
	fGetObject("hrsearch").style.display = "block";
	
	if(strid == "" && strsearch.trim() == "")
		fGetObject("hrsearch").innerHTML = '<div style="padding-top:10px; padding-bottom:10px; border-bottom:1px solid #e7e7e7;">a keresés munkakör és / vagy kulcsszó megadását követően automatikusan elindul...</div>';
	else
		xmlhttpPostSearch("../doajax.php?type=searchhr", "str_search="+strsearch+"&pid="+strid, "commGateSearchHr");
}

function commGateSearchHr(str){
	var aTmp = fGetToken(str, "<maksz>");
	
	tmp = '';
	
	if(aTmp[0] == -1){
		tmp = '<div style="padding-top:10px; padding-bottom:10px; border-bottom:1px solid #e7e7e7;">'+aTmp[1]+'</div>';
	}else{
		for(q=1; q<aTmp.length; q++){
			tmp += '<div style="padding-top:10px; padding-bottom:10px; border-bottom:1px solid #e7e7e7;"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td rowspan="2" align="left" width="65" valign="top"><img src="../file_cw/'+aTmp[q]+'" width="55" /></td><td style="padding-bottom:10px;" valign="bottom" height="1">'+aTmp[q+1]+' | <font color="#450934" style="font-weight:bold;">'+aTmp[q+2]+'</font></td></tr>	<tr><td valign="top" style="text-align:justify;">'+aTmp[q+3]+'<a style="padding-left:15px;" class="class="link_news1"" href="javascript:fShowHrDetail('+aTmp[q+4]+');">tovább&nbsp;>></a></td></tr></table></div>';
		
			q += 4;
		}	
	}	
	
	fGetObject("hrsearch").innerHTML = tmp;
}


function fLoadNews(pDir, pId, pId2){
	ajaxArray.push(Array("../doajax.php?type=loadnews","pdir="+String(pDir)+"&pid="+String(pId)+"&pid2="+String(pId2),"commGateLoadNews"));
	fCallxmlhttpPost();
}

function commGateLoadNews(str){
	ajaxcomm = 0;
	var aTmp = fGetToken(str, "<maksz>");
	
	fGetObject("news_left_arrow").innerHTML = aTmp[0];
	fGetObject("news_left").innerHTML = aTmp[1];
	fGetObject("news_left_detail").innerHTML = aTmp[2];
	
	fGetObject("news_right_arrow").innerHTML = aTmp[3];
	fGetObject("news_right").innerHTML = aTmp[4];
	fGetObject("news_right_detail").innerHTML = aTmp[5];
}

function commGateGeneral(str){
	ajaxcomm = 0;
	var aTmp = fGetToken(str, "<maksz>");
	if(aTmp[0] != -1)
		eval(aTmp[1]);
}

function fCallxmlhttpPost(){
	if(ajaxcomm == 0 && ajaxArray.length>0){
		ajaxcomm = 1;
		param = ajaxArray.shift()
		xmlhttpPost(param[0], param[1], param[2]);
	}else if(ajaxcomm == 1 && ajaxArray.length>0){
		setTimeout("fCallxmlhttpPost()", 500);
	}	
}

function fGetToken(str, token){
	var aReturn = new Array();
	var str = new String(str);
	var token = new String(token);
	pos = str.indexOf(token);
	while(pos != -1){
		aReturn.push(str.substring(0,pos));
		str = str.substring(pos + token.length)
		pos = str.indexOf(token);
	}
	aReturn.push(str);
	return aReturn;
}

function xmlhttpPost(strUrl, strQuery, strCallBack) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strUrl, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4){
			eval(strCallBack + "(self.xmlHttpReq.responseText)");
        }
    }
    self.xmlHttpReq.send(strQuery);
}

function xmlhttpPostSearch(strUrl, strQuery, strCallBack) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strUrl, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4){
			eval(strCallBack + "(self.xmlHttpReq.responseText)");
        }
    }
    self.xmlHttpReq.send(strQuery);
}

function commGateChangeDropDown(str){
	ajaxcomm = 0;
	var aTmp = fGetToken(str, "<maksz>");
	
	tmp = "<select id='"+ aTmp[0] +"' name='"+ aTmp[0] +"' class='input' onchange='" + aTmp[1] + "'>";		
	
	for(q=2; q<aTmp.length; q++)
		tmp += "<option value='"+aTmp[q]+"' id='"+aTmp[++q]+"'>"+aTmp[q]+"</option>";
		
	tmp += "</select>";
	
	obj = fGetObject("div_" + aTmp[0]);
	if(obj)
		obj.innerHTML = tmp;
}

function commGateChangeDropDownSearch(str){
	var aTmp = fGetToken(str, "<maksz>");
	
	tmp = "<select id='"+ aTmp[0] +"' name='"+ aTmp[0] +"' class='input' onchange='" + aTmp[1] + "'>";		
	
	for(q=2; q<aTmp.length; q++)
		tmp += "<option value='"+aTmp[q]+"' id='"+aTmp[++q]+"'>"+aTmp[q]+"</option>";
		
	tmp += "</select>";
	
	obj = fGetObject("div_" + aTmp[0]);
	if(obj)
		obj.innerHTML = tmp;
}	
	
/*a html oldalba a </body> elé kell betenni

<div id="DialogBox" style="display: none;">
	<div class="dialogBoxBorder">
		<div id="dialogContent" class="dialogBoxContent"> </div>
	</div>
</div>
<div id="DialogPreLoading" style="display: none;">
	<center>
		<img class="preSpin" alt="loading" src="../img/preSpin.gif"/>
	</center>
</div>
<div id="DialogBackground" style="display: none;"> </div>
*/

/*a html oldalba be kell linkelni a dialogbox.css-t

<link href="path/dialogbox.css" rel="stylesheet" type="text/css" />

*/

/*template fileokat (kiterjesztésük .tmpl) valahavoa felmásolni és az elérését beállítani

TemplateManager.URL = "../dialogtemplate/";

*/

/*Példák a hazsnálathoz:

dialogManager.add(new Dialog('Üzenet ami megjelenik!', 'alert'));

dialogManager.add(new Dialog(
				"Biztosan törölni akarod?",
				"confirm",
				[ null, function () { self.removeMessage(messageId, folder, true); }, null ],
				[ "", "Igen", "Nem" ])
				);
*/



/**
 * Converts object's properties to Map, except functions
 * @return Converted object
 * @type Map
 * @author Cser Dániel
 */
Object.prototype.toMap = function() {
	var map = new Map();
	
	for (var key in this) {
		if (typeof(this[key]) != "function") {
			map.put(key, this[key]);
		}
	}
	
	return map;
}

/** 
 * Collection used to store data by key-value pairs.
 * @constructor
 * @author Cser Dániel
 */
function Map() {
	
	/**
	 * Data holding maps elements
	 * @type Array
	 */
	var data;
	
	/**
	 * Pointer to this
	 * @type Map
	 */
	var self = this;
	
	/**
	 * Put a value by a given key. If the key already exists, it will be overridden.
	 * @param String Key of data
	 * @param mixed Value of data
	 */
	this.put = function(elementKey, elementValue) {
		for (var i = 0; i < data.length; i++) {
			if (data[i].getKey() == elementKey) {
				data[i].setValue(elementValue);
				return;
			}
		}
		
		data.push(new MapElement(elementKey, elementValue));
	}
	
	/**
	 * Returns value by a given key.
	 * @param String Key of value
	 * @return Found value
	 * @type mixed
	 */
	this.get = function(elementKey) {
		for (var i = 0; i < data.length; i++) {
			if (data[i].getKey() == elementKey) {
				return data[i].getValue();
			}
		}
		
		return null;
	}
	
	/**
	 * Returns true when key is exists in the map
	 * @param String Key of value
	 * @return True when key exists
	 * @type boolean
	 */
	this.containsKey = function(elementKey) {
		for (var i = 0; i < data.length; i++) {
			if (data[i].getKey() == elementKey) {
				return true;
			}
		}
		
		return false;
	}
	
	/**
	 * Returns true when value is exists in the map
	 * @param mixed Value
	 * @return True when value exists
	 * @type boolean
	 */
	this.containsValue = function(elementValue) {
		for (var i = 0; i < data.length; i++) {
			if (data[i].getValue() == elementValue) {
				return true;
			}
		}
		
		return false;
	}
	
	/**
	 * Returns the keyset of thew map
	 * @return Keyset of the map
	 * @type Set
	 */
	this.keys = function() {
		var set = new Set();
		
		for (var i = 0; i < data.length; i++) {
			set.add(data[i].getKey());
		}
		
		return set;
	}
	
	/**
	 * Returns the keyset of thew map
	 * @return Keyset of the map
	 * @type Array
	 */
	this.keysArray = function() {
		var array = new Array();
		
		for (var i = 0; i < data.length; i++) {
			array.push(data[i].getKey());
		}
		
		return array;
	}
	
	/**
	 * Returns the valueset of the map
	 * @return Valueset of the map
	 * @type Set
	 */
	this.values = function() {
		var set = new Set();
		
		for (var i = 0; i < data.length; i++) {
			set.add(data[i].getValue());
		}
		
		return set;
	}
	
	/**
	 * Returns the valueset of the map
	 * @return Valueset of the map
	 * @type Array
	 */
	this.valuesArray = function() {
		var array = new Array();
		
		for (var i = 0; i < data.length; i++) {
			array.push(data[i].getValue());
		}
		
		return array;
	}
	
	/**
	 * Removes an element by the given key
	 * @param String key
	 */
	this.remove = function(elementKey) {
		var newData = new Array();
		
		for (var i = 0; i < data.length; i++) {
			if (data[i].getKey() != elementKey) {
				newData.push(data[i]);
			}
		}
		
		data = newData;
	}
	
	/**
	 * Empties the map
	 */
	this.clear = function() {
		data = new Array();
	}
	
	/**
	 * Returns true when map is empty
	 * @return True when map is empty
	 * @type boolean
	 */
	this.isEmpty = function() {
		return data.length == 0;
	}
	
	/**
	 * Returns the size of the map
	 * @return Size of the map
	 * @type Number
	 */
	this.size = function() {
		return data.length;
	}
	
	/**
	 * Converts map to object
	 * @return Converted map
	 * @type Object
	 */
	this.toObject = function() {
		var obj = new Object();
		
		for (var i = 0; i < data.length; i++) {
			obj[data[i].getKey()] = data[i].getValue();
		}
		
		return obj;
	}
	
	/**
	 * Sorts contained elements by the given function
	 * @param Function Function used to sort
	 */
	this.sort = function(sortBy) {
		data = data.sort(sortBy);
	}
	
	/**
	 * Calls callback on every element of the map
	 * @param Function Callback function
	 */
	this.map = function(callback) {
		for (var i = 0; i < data.length; i++) {
			callback(data[i].getValue());
		}
	}
	
	/**
	 * Returns true if keys and values of maps are equal
	 * @return True if keys and values of maps are equal
	 * @type Boolean
	 */
	this.equalsTo = function(otherMap) {
		if (! checkType(otherMap, Map)) {
			return false;
		}
		
		if (! self.keys().equalsTo(otherMap.keys()) || ! self.values().equalsTo(otherMap.values())) {
			return false;
		}
		
		return true;
	}
	
	/**
	 * Returns the next element relative to the given
	 * @param mixed Key of element
	 * @return The next element relative to the given
	 * @type mixed
	 */
	this.nextElement = function(elementKey) {
		for (var i = 0; i < data.length; i++) {
			if (data[i].getKey() == elementKey) {
				return (data[i + 1] != undefined ? data[i + 1].getValue() : null);
			}
		}
		
		return null;
	}
	
	/**
	 * Returns the previous element relative to the given
	 * @param mixed Key of element
	 * @return The previous element relative to the given
	 * @type mixed
	 */
	this.prevElement = function(elementKey) {
		for (var i = 0; i < data.length; i++) {
			if (data[i].getKey() == elementKey) {
				return (data[i - 1] != undefined ? data[i - 1].getValue() : null);
			}
		}
		
		return null;
	}
	
	//Initialize
	data = new Array();
	
	/**
	 * Internal class for holding a key-value pair
	 * @param String Key of element
	 * @param mixed Value of element
	 */
	function MapElement(elementKey, elementValue) {
		
		/**
		 * Key of element
		 * @type String
		 */
		var key = elementKey;
		
		/**
		 * Value of element
		 * @type mixed
		 */
		var value = elementValue;
		
		/**
		 * Return the key of element
		 * @return Key of element
		 * @type String
		 */
		this.getKey = function() {
			return key;
		}
		
		/**
		 * Returns the value of element
		 * @return Value of element
		 * @type mixed
		 */
		this.getValue = function() {
			return value;
		}
		
		/**
		 * Set the new value of element
		 * @param mixed New value
		 */
		this.setValue = function(elementValue) {
			value = elementValue;
		}
		
	}
	
}

/**
 * Prototype.js style getElementById
 * @param String Id of DOM object
 * @return Found DOM object
 * @type Object
 */
function $(id) {
	return document.getElementById(id);
}

/**
 * Check if the variable is not null and is defined
 * @param mixed Variable to check
 * @return True if it's OK
 * @type Boolean
 */
function check(variable) {
	return (variable != null && variable != undefined);
}

/**
 * Check if the variable is not null and is defined and is instanceof type
 * @param mixed Variable to check
 * @return True if it's OK
 * @type Boolean
 */
function checkType(variable, type) {
	return (variable != null && variable != undefined && variable instanceof type);
}


/**
 * Returns a file content by a given URL
 * @param String URL of file
 * @throws When URL is null
 * @throws When XMLHttpRequest object cannot be created.
 * @return File content
 * @type String
 */
function getStringByUrl(url){
	if (! check(url) || url.length == 0)
		alert("getStringByUrl(): Invalid parameters.");
		
	var randomSeed = Math.floor(Math.random() * (10001));
	
	var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
	
	self.xmlHttpReq.open('GET', url + "?random=" + randomSeed, false);
	self.xmlHttpReq.send(null);
	
	if (self.xmlHttpReq.status != 200) {
		//TODO: Log error
		return;
	}

	return self.xmlHttpReq.responseText;
}


/**
 * Represents an element in the dialog queue
 * @param String Message
 * @param String Type
 * @param Array Callbacks
 * @param Array Captions
 * @author Cser Dániel
 */
function Dialog(dialogMessage, dialogType, dialogCallbacks, dialogCaptions) {
	
	/**
	 * Message
	 * @type String
	 */
	var message;
	
	/**
	 * Type
	 * @type Number
	 */
	var type;
	
	/**
	 * Callbacks
	 * @type Array
	 */
	var callbacks;
	
	/**
	 * Captions
	 * @type Array
	 */
	var captions;
	
	/**
	 * OK constant for captions and callbacks
	 * @type Number
	 */
	Dialog.OK = 0;
	
	/**
	 * YES constant for captions and callbacks
	 * @type Number
	 */
	Dialog.YES = 1;
	
	/**
	 * NO constant for captions and callbacks
	 * @type Number
	 */
	Dialog.NO = 2;
	
	/**
	 * Returns message
	 * @return Message
	 * @type String
	 */
	this.getMessage = function() {
		return message;
	}
	
	/**
	 * Sets message
	 * @param String Message
	 */
	this.setMessage = function(dialogMessage) {
		if (! dialogMessage) {
			//TODO: Log error
			return;
		}
		
		message = String(dialogMessage);
	}
	
	/**
	 * Returns type
	 * @return Type
	 * @type Number
	 */
	this.getType = function() {
		return type;
	}
	
	/**
	 * Sets type
	 * @param Number Type
	 */
	this.setType = function(dialogType) {
		if (! dialogType) {
			//TODO: Log error
			return;
		}
		
		type = Number(dialogType);
	}
	
	/**
	 * Returns the requested callback
	 * @param Number Which callback
	 * @return Requested callback
	 * @type String
	 */
	this.getCallback = function(callbackType) {
		//az összes callback állítása esetén ez nem tömb, ezért ezzel csak az x karaktert adja vissza,
		//mivel String tömbként kezeli, így ezt vizsgálni és kezelni kell
		//return callbacks[Number(callbackType)];
		if( callbacks instanceof Array )
			return callbacks[Number(callbackType)];	
		else
			return callbacks;
	}
	
	/**
	 * Sets the given callback
	 * @param Number Which callback
	 * @param Function Callback function
	 */
	this.setCallback = function(callbackType, dialogCallback) {
		if (! callbackType || ! dialogCallback) {
			//TODO: Log error
			return;
		}
		
		callbacks[Number(callbackType)] = dialogCallback;
	}
	
	/**
	 * Sets all callbacks
	 * @param Array Callback array
	 */
	this.setCallbacks = function(dialogCallbacks) {
		if (! dialogCallbacks || ! dialogCallbacks instanceof Array) {
			//TODO: Log error
			return;
		}
		
		callbacks = dialogCallbacks;
	}
	
	/**
	 * Returns the requested caption
	 * @param Number Which caption
	 * @return Requested caption
	 * @type String
	 */
	this.getCaption = function(captionType) {
		return captions[Number(captionType)];
	}
	
	/**
	 * Sets the given caption
	 * @param Number Which caption
	 * @param String Caption
	 */
	this.setCaption = function(captionType, dialogCaption) {
		if (! captionType || ! dialogCaption) {
			//TODO: Log error
			return;
		}
		
		captions[Number(captionType)] = String(dialogCaption);
	}
	
	/**
	 * Sets all captions
	 * @param Array Captions array
	 */
	this.setCaptions = function(dialogCaptions) {
		if (! dialogCaptions || ! dialogCaptions instanceof Array) {
			//TODO: Log error
			return;
		}
		
		captions = dialogCaptions;
	}
	
	//Initialize
	message = dialogMessage || "";
	type = dialogType || "";
	callbacks = dialogCallbacks || [null, null, null];
	captions = dialogCaptions || ["Ok", "Igen", "Nem"];
	
}

/**
 * Default parser used to parse template
 * @constructor
 * @author Cser Dániel
 */
var DefaultParser = {
	
	/**
	 * Object containing statements
	 * @type Object
	 */
	statements: {
		"if":      { delta: 1,  prefix: "if (", suffix: ") {\n", minParams: 1 },
		
		"elseif":  { delta: 0,  prefix: "} else if (", suffix: ") {\n" },
		
		"else":    { delta: 0,  prefix: "} else {\n" },
		
		"/if":     { delta: -1, prefix: "}\n" },
		
		"for":     {
			delta: 1,
			
			prefix: function(parameters) {
				if (parameters[1] != "in") {
					throw new TemplateParseError("Error parsing template " + name + ", loop with bad parameters: " + parameters.join(" ") + ".");
				}
				
				return [
					"if (typeof(_FORS) == \"undefined\" || ! _FORS.length) {\n  var _FORS = [];\n}\n",
					"_FORS.push(0);\n",
					"if (typeof(" + parameters[2] + ") != \"undefined\" && " + parameters[2] + " instanceof Array) {\n",
					"  var " + parameters[0] + "Array = " + parameters[2] + ";\n",
					"  for (var " + parameters[0] + "Iterator = 0; " + parameters[0] + "Iterator < " + parameters[0] + "Array.length; " + parameters[0] + "Iterator++) {\n",
					"    var " + parameters[0] + " = " + parameters[0] + "Array[" + parameters[0] + "Iterator];\n",
					"    _FORS[_FORS.length - 1]++;\n"].join("");
			},
			
			minParams: 3
		},
		
		"forelse": { delta: 0,  prefix: "  }\n}\n if (_FORS[_FORS.length - 1] == 0) {\n  if (true) {\n" },
		
		"/for":    { delta: -1, prefix: "  }\n}\n" },
		
		"eat":     { delta: 1, prefix: "/*\n" },
		
		"/eat":    { delta: -1, prefix: "*/\n" },
		
		"include": {
			delta: 0,
			
			prefix: function(parameters) {
				var templateName = parameters.shift();
				var templateWith = parameters.shift();
				
				if (templateWith != "with") {
					throw new TemplateParseError("Error parsing template " + name + ", include with bad parameters: " + parameters.join(" ") + ".");
				}
				
				return "_OUT.push(templateManager.getTemplate(" + templateName + ").process({ " + parameters.join(" ") + " }));\n";
			},
			
			minParams: 3 }
	},
	
	/**
	 * Object containing modifiers
	 * @type Object
	 */
	modifiers: {
		//Eats the whole string
		"eat":        function(s) { return ""; },
		
		//Upper-cases string
		"upperCase":  function(s) { return String(s).toUpperCase(); },
		
		//Lower-cases string
		"lowerCase":  function(s) { return String(s).toLowerCase(); },
		
		//Return first param if that is not a nullstring, second param else
		"default":    function(s1, s2) { return String(s1).length > 0 ? s1 : s2; },
		
		//Upper-cases first characters of every word
		"capitalize": function(s) {
			var words = String(s).split(" ");
			var capitalized = [];
			
			for (var i = 0; i < words.length; i++) {
				capitalized.push(this["ucFirst"](words[i]));
			}
			
			return capitalized.join(" ");
		},
		
		//Upper-cases first character
		"ucFirst":    function(s) {
			var oldStr = String(s);
			var newStr = String(oldStr[0]).toUpperCase();
			
			for (var i = 1; i < oldStr.length; i++) {
				newStr += oldStr[i];
			}
			
			return newStr;
		},
		
		//Lower-cases first character
		"lcFirst":    function(s) {
			var oldStr = String(s);
			var newStr = String(oldStr[0]).toLowerCase();
			
			for (var i = 0; i < oldStr.length; i++) {
				newStr += oldStr[i];
			}
			
			return newStr;
		},
		
		//Trims whitespaces form the beginning and end of the string
		"trim":       function(s) { return String(s).replace(/^\s+|\s+$/, ''); }
	}
	
}



/**
 * Represents a parsed template
 * @constructor
 * @author Cser Dániel
 */
function Template(templateName, tmpl, templateParser) {
	
	/**
	 * Template source
	 * @type String
	 */
	var source;
	
	/**
	 * Parsed string
	 * @type String
	 */
	var template;
	
	/**
	 * Name of template
	 * @type String
	 */
	var name;
	
	/**
	 * Template parser object
	 * @type Object
	 */
	var parser;
	
	/**
	 * Temp variable to check the number of start/end tags
	 * @type Number
	 */
	var delta;
	
	/**
	 * Parses the whole template and return the parsed and eval'd code
	 * @param String Template to parse
	 * @throws TemplateParseError on template parsing errors
	 * @return Parsed template
	 * @type String
	 */
	function parse(tmpl) {
		tmpl = new String(tmpl);
		
		tmpl = tmpl.replace(/\t/g, "    "); //convert \t to four spaces
		tmpl = tmpl.replace(/\r\n/g, "\n"); //convert windows line delimiters to unix style
		tmpl = tmpl.replace(/\r/g, "\n"); //convert macosx line delimiters to unix style
		
		var actualPos = -1;
		var parsed = ["function evalTmpl(_OUT, _CONTEXT, _MODIFIERS) { with (_CONTEXT) {\n"];
		
		while (actualPos + 1 < tmpl.length) {
			var statementStart = tmpl.indexOf("{", actualPos);
			
			if (statementStart < 0) {
				break;
			}
			
			var statementEnd = tmpl.indexOf("}", statementStart + 1);
			
			if (statementEnd < 0) {
				break;
			}
			
			if (tmpl.charAt(statementStart - 1) == "$") { //expression which will be shown
				parseText(parsed, tmpl.substring(actualPos, statementStart - 1));
				parseExpression(parsed, tmpl.substring(statementStart + 1, statementEnd));
			} else { //statement
				parseText(parsed, tmpl.substring(actualPos, statementStart));
				parseStatement(parsed, tmpl.substring(statementStart + 1, statementEnd));
			}
			
			actualPos = statementEnd + 1;
		}
		
		if (delta != 0) {
			throw new TemplateParseError("Error parsing template " + name + ", tag start/end tags number are not the same.");
		}
		
		//last piece of text
		parseText(parsed, tmpl.substring(actualPos, tmpl.length));
		
		parsed.push("} }");
		
		eval(parsed.join(""));
		
		return evalTmpl;
	}
	
	/**
	 * Parses the text
	 * @param Array Array to push results
	 * @param String Text to parse
	 */
	function parseText(out, text) {
		if (! text && text.length == 0) {
			return "";
		}
		
		var nlPrefix = 0; //index to first non-newline in prefix.
	    var nlSuffix = text.length - 1; //index to first non-space/tab in suffix.
	    
	    while (nlPrefix < text.length && text.charAt(nlPrefix) == "\n") {
	    	nlPrefix++;
	    }
	    
	    while (nlSuffix >= 0 && (text.charAt(nlSuffix) == " " || text.charAt(nlSuffix) == "\t")) {
	    	nlSuffix--;
	    }
	    
	    if (nlSuffix < nlPrefix) {
	    	nlSuffix = nlPrefix;
	    }
	    
	    var lines = text.substring(nlPrefix, nlSuffix + 1).split("\n");
	    
	    for (var i = 0; i < lines.length; i++) {
			out.push("_OUT.push(\"" + lines[i].replace(/"/g, "\\\"") + "\");\n");
			
			if (i < lines.length - 1) {
	            out.push('_OUT.push("\\n");\n');
	        }
		}
	}
	
	/**
	 * Parses the expressions
	 * @param Array Array to push results
	 * @param String Expression to parse
	 * @throws TemplateParseError on template parsing errors
	 */
	function parseExpression(out, expression) {
		if (! expression && expression.length == 0) {
			return "";
		}
		
		var modifiers = expression.split("|");
		expression = modifiers.shift();
		
		var expr = expression;
		var parts;
		var modifier;
		
		for (var i = 0; i < modifiers.length; i++) {
			parts = modifiers[i].split(":");
			modifier = parts.shift();
			
			if (parser.modifiers[modifier] == null) {
				throw new TemplateParseError("Error parsing template " + name + ", no such modifier: " + modifier + ".");
			}
			
			expr = "_MODIFIERS[\"" + modifier + "\"](" + expr + (parts.length > 0 ? ", " + parts[0].replace(/"/g, "\"") : "") + ")";
		}
		
		out.push("_OUT.push(" + expr + ");\n");
	}
	
	/**
	 * Parses the statements
	 * @param Array Array to push results
	 * @param String Statements to parse
	 * @throws TemplateParseError on template parsing errors
	 */
	function parseStatement(out, stmt) {
		if (! stmt && stmt.length == 0) {
			return;
		}
		
		parameters = stmt.split(" ");
		statement = parameters.shift();
		
		statement = parser.statements[statement];
		
		if (statement == null) {
			parseText(out, stmt);
		}
		
		delta += statement.delta;
		
		if (delta < 0) {
			throw new TemplateParseError("Error parsing template " + name + ", fewer start tags then end tags.");
		}
		
		if (statement.minParams != null && statement.minParams > parameters.length) {
			throw new TemplateParseError("Error parsing template " + name + ", too few parameters.");
		}
		
		if (typeof(statement.prefix) == "function") {
			out.push(statement.prefix(parameters));
		} else {
			out.push(statement.prefix);
		}
		
		if (statement.suffix != null) {
			out.push(parameters.join(" "));
			out.push(statement.suffix);
		}
	}
	
	/**
	 * Processes the template with the given context
	 * @param Object Context of template
	 * @throws TemplateProcessError template on processing errors
	 * @return Ready-to-use template
	 * @type String
	 */
	this.process = function(context) {
		if (! context || ! template) {
			return "";
		}
		
		var processed = [];
		
		try {
			template(processed, context, parser.modifiers);
		} catch(e) {
			throw new TemplateProcessError(e.message, e.fileName, e.lineNumber, e.stack);
		}
		
		return processed.join("");
	}
	
	/**
	 * Returns HTML source
	 * @return HTML source
	 * @type String
	 */
	this.getSource = function() {
		return source;
	}
	
	//Initialize
	if (! tmpl || ! templateName || tmpl.length == 0 || templateName.length == 0) {
		return null;
	}
	
	if (templateParser != null) {
		parser = templateParser;
	} else {
		parser = DefaultParser;
	}
	
	name = templateName;
	delta = 0;
	source = new String(tmpl);
	template = parse(tmpl);
	
}
/**
 * Loads and caches templates.
 * @constructor
 * @author Cser Dániel
 */
function TemplateManager() {
	
	/**
	 * Base dir of templates.
	 * Set in config.js
	 * @type String
	 */
	TemplateManager.URL = "../dialogtemplate/";
	
	/**
	 * Map to store templates
	 * @type Map
	 */
	var templates;
	
	/**
	 * Corrects the name of template
	 */
	function correctName(templateName) {
		return String(templateName).toLowerCase();
	}
	
	/**
	 * Returns the template and loads it when necessary
	 * @param String Name of template
	 * @throws On parsing errors
	 * @return Template
	 * @type Template
	 */
	function get(templateName) {
		templateName = correctName(templateName);
		if (! templates.containsKey(templateName)) {
			if (! check(TemplateManager.URL)) {
				//TODO: Log error
				return null;
			}
			
			var templateUrl = TemplateManager.URL + templateName.replace(/_/g, "/") + ".tmpl";
			
			try {
				var templateData = getStringByUrl(templateUrl);
			} catch (e) {
				alert("TemplateHandler.get(): Couldn't read file " + templateUrl + ".");
				//throw new TemplateParseError("TemplateHandler.get(): Couldn't read file " + templateUrl + ".");
			}
			templates.put(templateName, new Template(templateName, templateData));
		}
		return templates.get(templateName);
	}
	
	/**
	 * Returns the given template
	 * @param String Name of template
	 * @throws On parsing errors
	 * @return Template
	 * @type Template
	 */
	this.getTemplate = function(templateName) {
		return get(templateName);
	}
	
	/**
	 * Processes the given template with the given context, then puts it into the given DOM object
	 * @param String Name of template
	 * @param Object Template context
	 * @param String Id of DOM object to put the template
	 * @throws On parsing errors
	 */
	this.processTemplate = function(templateName, templateData, domId) {
		$(domId).innerHTML = get(templateName).process(templateData);
	}
	
	//Initialize
	templates = new Map();
	
}
/**
 * Represents a template parsing error.
 * @constructor
 * @author Cser Dániel
 */
function TemplateParseError(message, fileName, lineNumber, stack) {
	
	/**
	 * Message of error
	 * @type String
	 */
	this.message = message;
	
	/**
	 * Name of the file where the error occured
	 * @type String
	 */
	this.fileName = fileName;
	
	/**
	 * Number of line where the error occured
	 * @type String
	 */
	this.lineNumber = lineNumber;
	
	/**
	 * Stact trace of error
	 * @type Object
	 */
	this.stack = stack;
	
	/**
	 * Name of error
	 * @type String
	 */
	this.name = "TemplateParseError";
	
}
/**
 * Represents a template processing error.
 * @constructor
 * @author Cser Dániel
 */
function TemplateProcessError(message, fileName, lineNumber, stack) {
	
	/**
	 * Message of error
	 * @type String
	 */
	this.message = message;
	
	/**
	 * Name of the file where the error occured
	 * @type String
	 */
	this.fileName = fileName;
	
	/**
	 * Number of line where the error occured
	 * @type String
	 */
	this.lineNumber = lineNumber;
	
	/**
	 * Stact trace of error
	 * @type Object
	 */
	this.stack = stack;
	
	/**
	 * Name of error
	 * @type String
	 */
	this.name = "TemplateProcessError";
	
}




/**
 * Dialog window manager class.
 * @constructor
 * @author Cser Dániel
 */
function DialogManager() {
	
	/**
	 * DialogBox width size
	 * @type integer
	 */
	var width = 310;
	
	/**
	 * DialogBox height size
	 * @type integer
	 */
	var height = 180;

	/**
	 * Array of disabled selects
	 * @type Array
	 */
	var disabledSelects;
	
	/**
	 * Queue array
	 * @type Array
	 */
	var queue;
	
	/**
	 * Running state
	 * @type Boolean
	 */
	var running;
	
	/**
	 * Adds a new task
	 * @param Dialog Dialog to add
	 */
	this.add = function(dialog) {
		//when this is a progress or there's no progress in the queue
		queue.push(dialog);
		//return when already displaying or there's nothing to display
		if (running) {
			return;
		}
		
		//start showing
		this.running = true;
	    
	    //disable active selects
		var allSelects = document.getElementsByTagName("select");
		for (i = 0; i < allSelects.length; i++) {
    		if (allSelects[i].disabled == false) {
    			disabledSelects[i] = allSelects[i];
    			disabledSelects[i].disabled = true;
    		}
			allSelects[i].style.visibility = 'hidden';
    	}
	    
	    //hider div
	    var pageSize = getPageSize();
	    setOpacity( $("DialogBackground"), 0.9 );
	    $("DialogBackground").style.height = pageSize.pageHeight+'px';
	    $("DialogBackground").style.display = "block";
	    
	    //dialog box
	    getWindow( height, width );
	    
	    //start showing
	    show();
	}
	
	/**
	 * Shows a task
	 */
	function show() {
		try {
			window.scrollBy(0, 0);
		    templateManager.processTemplate(queue[0].getType(), { dialog: queue[0] }, "dialogContent");
		} catch(e) {
			//TODO: Log error
		}
	}
	
	/**
	 * One task ended
	 * @param Number Result code
	 */
	this.done = function(result) {		
		
		if (queue.length == 0 || result == null || result == undefined) {
			//TODO: Log error
			return;
		}
		
		var fn = queue[0].getCallback(result);
		if (typeof(fn) == "function") {
			try {
				fn();
			} catch(e) {
				//TODO: Log error
			}
		}
	    //remove first element
	    queue.shift();
	    //when this was the last one in queue
	    if (queue.length == 0) {
	    	running = false;
	    	
			//hide dialog and bakground
			$("DialogBackground").style.display = "none";
			$("DialogBox").style.display = "none";
			$("dialogContent").innerHTML = "";
			//enable all disabled selects and clear the array holding them
	    	for (var i = 0; i < disabledSelects.length; i++) {
		    	disabledSelects[i].disabled = false;
				disabledSelects[i].style.visibility = 'visible';
	    	}
	    	
	    	disabledSelects = new Array();
			
		    return;
	    }
	    show();
	}
	
	/**
	 *
	 */
	this.showBackground = function() {
		var pageSize = getPageSize();
	    setOpacity( $("DialogBackground"), 0.3 );
	    $("DialogBackground").style.height = pageSize.pageHeight + 'px';
	    $("DialogBackground").style.display = "block";
		return;
	}
	
	/**
	 *
	 */
	this.hideBackground = function() {
		$("DialogBackground").style.display = "none";
		return;
	}
	
	/**
	* set DialogBackground style
	* @param htmlObject 
	* @param opacity value
	*/
	function setOpacity(element, value) {
	    if (typeof element == 'string')
		element= $(element);
	    if (value == 1) {
		element.style.opacity = (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? 0.999999 : 1.0 ;
		if(/MSIE/.test(navigator.userAgent) && !window.opera)
		    element.style.filter = element.style.filter.replace(/alpha\([^\)]*\)/gi,'');
	    } else {
		if(value < 0.00001) value = 0;
		    element.style.opacity = value;
		if(/MSIE/.test(navigator.userAgent) && !window.opera)
		    element.style.filter = element.style.filter.replace(/alpha\([^\)]*\)/gi,'') + 'alpha(opacity='+value*100+')';
	    }
	    return element;
	}
	
	
	/**
	* set DialogBox style and position
	* @param box height
	* @param box width
	*/
	function getWindow(height, width) {
	    var DialogBox = $("DialogBox");
	    var pageSize = getPageSize();
	    var pos = realOffset(document.body);
	    
	    DialogBox.style.top = (pageSize.windowHeight/2 - height/2 + pos[1])+'px';
	    DialogBox.style.left = (pageSize.windowWidth/2 - width/2 + pos[0])+'px';
	    
	    DialogBox.style.display = "block";
	}
	
	/**
	* set DialogBox real position
	* @return top, left size
	* @type Array
	*/
	function realOffset(element) {
	    var valueT = 0, valueL = 0;
	    do {
		valueT += element.scrollTop  || 0;
		valueL += element.scrollLeft || 0;
		element = element.parentNode;
	    } while (element);
	    return [valueL, valueT];
	}
	
	
	/**
	* get page, widow, scroll height and width size 
	* @return size data
	* @type object
	*/
	function getPageSize() {
	    var xScroll, yScroll;
            if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	    } else if (document.body.scrollHeight > document.body.offsetHeight) {
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	    } else {
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	    }
	    
	    var windowWidth, windowHeight;
	    if (self.innerHeight) {
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	    } else if (document.documentElement && document.documentElement.clientHeight) {
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	    } else if (document.body) {
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	    }
	    
	    if(yScroll < windowHeight) {
		pageHeight = windowHeight;
	    } else {
		pageHeight = yScroll;
	    }
            if(xScroll < windowWidth) {
	        pageWidth = windowWidth;
	    } else {
		pageWidth = xScroll;
	    }
	    return {
		'pageWidth':pageWidth,
		'pageHeight':pageHeight,
		'windowWidth':windowWidth,
		'windowHeight':windowHeight,
		'yScroll':yScroll,
		'xScroll':xScroll
	    }
	}
	
	//Initialize
	disabledSelects = new Array();
	queue = new Array();
	running = false;
	
}

templateManager = new TemplateManager();
dialogManager = new DialogManager();	
	
var NS4 = (document.layers)? 1 : 0;
var IE4 = (document.all)? 1 : 0;
var W3C = (document.getElementById)? 1 : 0;
var aGalery = new Array();
var aVGalery = new Array();

function fCheckUzenet(){
	if(document.sform.uname.value == ""){
		alert('A neved megadása kötelező!');
		return false;
	}	
	
	if(document.sform.uemail.value == ""){
		alert('Az e-mail címed megadása kötelező!');
		return false;
	}
	
	var strtmp = new String(document.sform.uemail.value);
	if(strtmp.indexOf(".") == -1 || strtmp.indexOf("@") == -1){
		 alert("Az e-mail címed formátuma nem megfelelő!");
		 return false;
	}
	 
	if(document.sform.umesage.value == ""){
		alert('Az észrevétel, üzenet megadása kötelező!');
		return false;
	}
	 
	return true;
}

function fClickRadio(obj){
	var rgroup = new String(obj.id);
	rgroup = rgroup.substr(0, rgroup.lastIndexOf("_"));
	
	w = 0;
	obj2 = fGetObject(rgroup + "_" + String(++w));
	while(obj2){
		if(obj == obj2)
			obj2.src = "../img/radio_button_s.gif";
		else
			obj2.src = "../img/radio_button.gif";
		obj2 = fGetObject(rgroup + "_" + String(++w));
	}
}

function fDijak(cid){
	for(i=0; i<10; i++){
		if(i == cid){
			if(fGetObject("ev_"+String(i)+"_on")) fGetObject("ev_"+String(i)+"_on").style.display = "block";
			if(fGetObject("ev_"+String(i)+"_off")) fGetObject("ev_"+String(i)+"_off").style.display = "none";
		}else{
			if(fGetObject("ev_"+String(i)+"_on")) fGetObject("ev_"+String(i)+"_on").style.display = "none";
			if(fGetObject("ev_"+String(i)+"_off")) fGetObject("ev_"+String(i)+"_off").style.display = "block";			
		}
	}
}

function fUtazzunk(cid){
	for(i=0; i<9; i++){
		if(i == cid){
			if(fGetObject("g_"+String(i)+"_on")) fGetObject("g_"+String(i)+"_on").style.display = "block";
			if(fGetObject("g_"+String(i)+"_off")) fGetObject("g_"+String(i)+"_off").style.display = "none";
			if(fGetObject("cont_"+String(i))) fGetObject("cont_"+String(i)).style.display = "block";
			
		}else{
			if(fGetObject("g_"+String(i)+"_on")) fGetObject("g_"+String(i)+"_on").style.display = "none";
			if(fGetObject("g_"+String(i)+"_off")) fGetObject("g_"+String(i)+"_off").style.display = "block";
			if(fGetObject("cont_"+String(i))) fGetObject("cont_"+String(i)).style.display = "none";
		}
	}
}

function fMoveVerticalGalery(){
	for(k=0; k<aVGalery.length; k++){
		obj = fGetObject(aVGalery[k][0]);
		sstop = String(obj.style.top);
		ptop = Number(sstop.substr(0, sstop.length-2));
		if(ptop != aVGalery[k][1]){
			if(aVGalery[k][1]-ptop < 8 && aVGalery[k][1]-ptop > -8)
				obj.style.top = String(aVGalery[k][1])+"px";
			else
				obj.style.top = String(ptop + (aVGalery[k][1]-ptop)/6)+"px";
		}		
	}
	setTimeout("fMoveVerticalGalery()", 100);
}

function fGalPlaceVMod1(objname, kapcs, nyil){
	sstop = String(fGetObject(objname).style.top);
	ntop = Number(sstop.substr(0, sstop.length-2));
	
	sheight = String(fGetObject(objname).style.height);
	nheight = Number(sheight.substr(0, sheight.length-2));
	
	for(k=0; k<aVGalery.length; k++){
		if(aVGalery[k][0] == objname){
			currentrow = k;
			break;
		}
	}
	
	aVGalery[currentrow][1] += kapcs*103;
	//nyilacska
	if(aVGalery[currentrow][1] <= -(nheight-404)){
		fGetObject(nyil+'_1_on').style.display = "none";
		fGetObject(nyil+'_1_off').style.display = "block";
	}else{
		fGetObject(nyil+'_1_on').style.display = "block";
		fGetObject(nyil+'_1_off').style.display = "none";
	}
	
	if(aVGalery[currentrow][1]  == 0){
		fGetObject(nyil+'_2_on').style.display = "none";
		fGetObject(nyil+'_2_off').style.display = "block";
	}else{
		fGetObject(nyil+'_2_on').style.display = "block";
		fGetObject(nyil+'_2_off').style.display = "none";
	}
	
}

function fMoveGalery(){
	for(k=0; k<aGalery.length; k++){
		obj = fGetObject(aGalery[k][0]);
		sleft = String(obj.style.left);
		pleft = Number(sleft.substr(0, sleft.length-2));
		if(pleft != aGalery[k][1]){
			if(aGalery[k][1]-pleft < 8 && aGalery[k][1]-pleft > -8)
				obj.style.left = String(aGalery[k][1])+"px";
			else
				obj.style.left = String(pleft + (aGalery[k][1]-pleft)/6)+"px";
		}		
	}
	setTimeout("fMoveGalery()", 100);
}

function fGalPlaceMod2(objname, kapcs, nyil){
	sleft = String(fGetObject(objname).style.left);
	nleft = Number(sleft.substr(0, sleft.length-2));
	
	swidth = String(fGetObject(objname).style.width);
	nwidth = Number(swidth.substr(0, swidth.length-2));
	
	for(k=0; k<aGalery.length; k++){
		if(aGalery[k][0] == objname){
			currentrow = k;
			break;
		}
	}
	
	aGalery[currentrow][1] += kapcs*220;
	//nyilacska
	if(aGalery[currentrow][1] < -(nwidth-660)){
		fGetObject(nyil+'_2_on').style.display = "none";
		fGetObject(nyil+'_2_off').style.display = "block";
	}else{
		fGetObject(nyil+'_2_on').style.display = "block";
		fGetObject(nyil+'_2_off').style.display = "none";
	}
	
	if(aGalery[currentrow][1]  == 0){
		fGetObject(nyil+'_1_on').style.display = "none";
		fGetObject(nyil+'_1_off').style.display = "block";
	}else{
		fGetObject(nyil+'_1_on').style.display = "block";
		fGetObject(nyil+'_1_off').style.display = "none";
	}
	
}

function fGalPlaceMod(objname, kapcs, nyil){
	sleft = String(fGetObject(objname).style.left);
	nleft = Number(sleft.substr(0, sleft.length-2));
	
	swidth = String(fGetObject(objname).style.width);
	nwidth = Number(swidth.substr(0, swidth.length-2));
	
	for(k=0; k<aGalery.length; k++){
		if(aGalery[k][0] == objname){
			currentrow = k;
			break;
		}
	}
	
	aGalery[currentrow][1] += kapcs*113;
	//nyilacska
	if(aGalery[currentrow][1] == -(nwidth-339)){
		fGetObject(nyil+'_2_on').style.display = "none";
		fGetObject(nyil+'_2_off').style.display = "block";
	}else{
		fGetObject(nyil+'_2_on').style.display = "block";
		fGetObject(nyil+'_2_off').style.display = "none";
	}
	
	if(aGalery[currentrow][1]  == 0){
		fGetObject(nyil+'_1_on').style.display = "none";
		fGetObject(nyil+'_1_off').style.display = "block";
	}else{
		fGetObject(nyil+'_1_on').style.display = "block";
		fGetObject(nyil+'_1_off').style.display = "none";
	}
	
}


function fFileBrowse(obj, ext){
	var tmp = new String(obj.value);
	tmp = tmp.substr(tmp.length-4, 4);
	if(tmp.toLowerCase() != ext){
		obj.value = "";
		dialogManager.add(new Dialog('Csak '+ext+' file-t lehet feltölteni!', 'alert'));
	}
}

function fGetObject(obj_name){
	if(W3C)
		return document.getElementById(obj_name);
	else if(NS4)
		return document.layers[obj_name];
	else
		return window.opener.document.all[obj_name];
}

function fIsNum(tmp){
	var szam = new String(tmp);
	var jok = new String("0123456789");
	for(k=0; k<szam.length; k++){
		if(jok.indexOf(szam.charAt(k)) == -1)
			return false;
	}
	return true;
}

function fIsNum2(tmp){
	var szam = new String(tmp);
	var jok = new String("0123456789.");
	var ispoint = false;
	for(k=0; k<szam.length; k++){
		if(szam.charAt(k) == "." && ispoint)
			return false;
		else if(szam.charAt(k) == ".")
			ispoint = true;
			
		if(jok.indexOf(szam.charAt(k)) == -1)
			return false;
	}
	return true;
}

function fIsNum3(obj){
	var szam = new String(obj.value);
	while(szam.indexOf(",") != -1)
		szam = szam.replace(",", ".");
		
	while(szam.indexOf(" ") != -1)
		szam = szam.replace(" ", "");
	obj.value = szam;
	
	var jok = new String("0123456789.");
	var ispoint = false;
	for(k=0; k<szam.length; k++){
		if(szam.charAt(k) == "." && ispoint){
			obj.value = "";
			return false;			
		}else if(szam.charAt(k) == ".")
			ispoint = true;
			
		if(jok.indexOf(szam.charAt(k)) == -1){
			obj.value = "";
			return false;
		}
	}
	return true;
}

function fIsNum4(obj){
	var szam = new String(obj.value);
	while(szam.indexOf(",") != -1)
		szam = szam.replace(",", ".");
		
	while(szam.indexOf(" ") != -1)
		szam = szam.replace(" ", "");
	obj.value = szam;
	
	var jok = new String("0123456789");
	for(k=0; k<szam.length; k++){			
		if(jok.indexOf(szam.charAt(k)) == -1){
			obj.value = 0;
			return false;
		}
	}
	return true;
}

function fIsTime(obj){
	var time = new String(obj.value);	
	while(time.indexOf(",") != -1)
		time = time.replace(",", ":");
		
	while(time.indexOf(".") != -1)
		time = time.replace(".", ":");
		
	while(time.indexOf(" ") != -1)
		time = time.replace(" ", ":");
		
	tmp = time.indexOf(":");
	if(tmp == 1){
		time = "0" + time;
	}	
	
	obj.value = time;
		
	if(time.length != 5){
		alert("Az idő formátuma nem megfelelő, helyesen: 16:30");
		return false;
	}	
	
	
	var hour = new String(time.substr(0,2));
	var minute = new String(time.substr(3,2));

	if(!fIsNum(hour)){
		alert("Az óra csak szám lehet!");
		return false;
	}
	
	if(!fIsNum(minute)){
		alert("A perc csak szám lehet!");
		return false;
	}
	
	if(hour<0 || hour>23){
		alert("Az óra 01-23 lehet!");
		return false;
	}
	
	if(!fIsNum(minute)){
		alert("A perc csak szám lehet");
		return false;
	}
	
	if(minute<0 || minute>59){
		alert("A perc 00-59 lehet!");
		return false;
	}
	
	return true;
}

function fIsDate(obj){
	var date = new String(obj.value);	
	while(date.indexOf(",") != -1)
		date = date.replace(",", "-");
		
	while(date.indexOf(".") != -1)
		date = date.replace(".", "-");
		
	while(date.indexOf(" ") != -1)
		date = date.replace(" ", "-");
		
	obj.value = date;
		
	if(date.length != 10){
		alert("A dátum formátuma nem megfelelő: 1999-09-09");
		return false;
	}	
	
	var year = new String(date.substr(0,4));
	var month = new String(date.substr(5,2));
	var day = new String(date.substr(8,2));

	if(!fIsNum(year)){
		alert("Az év csak szám lehet");
		return false;
	}
	
	if(!fIsNum(month)){
		alert("A hónap csak szám lehet");
		return false;
	}
	
	if(month<1 || month>12){
		alert("A hónap 01-12 lehet!");
		return false;
	}
	
	if(!fIsNum(day)){
		alert("A nap csak szám lehet");
		return false;
	}
	
	if(day<1 || day>31){
		alert("A nap 01-31 lehet!");
		return false;
	}
	
	return true;
}

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

String.prototype.replaceAll = function (str1, str2) {
	str = this;
	pos = str.indexOf(str1);
    while(pos != -1){
		str = str.replace(str1, str2);
		pos = str.indexOf(str1,pos+str2.length-str1.length);
	}
	return str;
}

Number.prototype.valuta = function () {
	var str = new String(this);
	
    str = str.replaceAll(".", ",");
	
	if(str.indexOf(".")>-1)
		tmp = false;
	else
		tmp = true;
	w=0;
	for(q=str.length-1; q>=0; q--){
		if(tmp)
			w++;
		
		if(str.charAt(q) == ",")
			tmp = true;
			
		if(w%3==0 && w>0)
			str = str.substr(0,q)+"&nbsp;"+str.substr(q);
	}
	return str;
}

function fShowDiv(gyid) {
	
	var divnev = "v_"+gyid;
	var anev = "a_"+gyid;

	if(fGetObject(divnev).value == 1){
		fGetObject(divnev).style.display = "none";	
		fGetObject(divnev).value = 0;
	}else{
		fGetObject(divnev).style.display = "block";	
		fGetObject(divnev).value = 1;
	}
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}	
	

