var maxRow = 20;
var maxCol = 25;//kb 650 oszlop lehet max :)
var headerID = new Array( ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z' );
var hosszStr = "hossz";
var kerdesStr = "kerdes";
var valaszStr = "valasz";
var headerCellClassName = "hC";//headerCell
var emptyDataCellClassName = "dCE";//dataCellEmpty
var dataCellKClassName = "dCK";//dataCell
var dataCellClassName = "dC";//dataCell
var aktivCellClassName = "dAC";//dataCell
var emptyCellContent = "X";
var nincsBetu = "...";
var mainCellClassName = "dCKO";//forejtveny class
var mainCellKClassName = "dCKOH";//forejtveny class, de itt klikkelni is lehet
var aktivcells = true; // nyomtatásnál ezt falsra állítani, hogy a cellák ne kapjanak onclick-et
var aktivcell = null; // ez az éppen kiválasztott cella

//buzi IE miatt külön kell majd kezelni - asszem itt van vmi jó: http://delete.me.uk/2004/09/ieproto.html
var classNameStr = "class";
var classNameStrIE = "className";//IE: className

//kell
function start( ridx )
{
	hideVInputs( ridx );
	hideHInputs( ridx );

	var tableTomb = convertRule(ridx);
	createTable( ridx, tableTomb );

	createForejtvenyBox( ridx );
}

//kell
function convertRule( ridx, kivetel, kx,ky,kt )
{
	var i,t;
	var betu = "";
	//rule[ridx] tömb global
	var tableTomb = new Array();
	for(var y = 0; y<maxRow; y++)
	{
		tableTomb[ y ] = new Array();
		for(var x=0; x<maxCol; x++)
		{
			tableTomb[y][x] = "";
		}
	}
	for( y in rule[ridx] )
	{
		if( typeof( rule[ridx][y] ) == "function" ) continue;
		for( x in rule[ridx][y] )
		{
			if( typeof( rule[ridx][y][x] ) == "function" ) continue;
			for( t in rule[ridx][y][x] )
			{
				if( kivetel && x == kx && y == ky && t == kt )
				{
					continue;
				}
				//scriptaculous miatt
				if( typeof( rule[ridx][y][x][t] ) == "function" ) continue;
//alert('yxtHossz:'+y+"+"+y+"+"+t+"+"+rule[ridx][y][x][t][hosszStr]+"+"+rule[ridx][y][x][t][valaszStr]);
				for(i=0; i<rule[ridx][y][x][t][hosszStr]; i++)
				{
					if(t == "0")
					{
						if( rule[ridx][y][x][t][valaszStr] == "undefined"
							|| rule[ridx][y][x][t][valaszStr].length <= i  )
						{
							betu = nincsBetu;
						}
						else
						{
							betu = rule[ridx][y][x][t][valaszStr].substr(i,1);
						}
//alert("ibetu:"+i+"+"+betu+"+"+rule[ridx][y][x][t][valaszStr].length);
						//ha nem üres, akkor nem írunk ki semmit, mert már ott van előző szabély miatt
						if ( tableTomb[y][Number(x)+Number(i)] != nincsBetu
							&& tableTomb[y][Number(x)+Number(i)] != "" )
						{//semmi
						} else
							tableTomb[y][Number(x)+Number(i)] = betu;
					} else
					{
						if( rule[ridx][y][x][t][valaszStr] == "undefined"
							|| rule[ridx][y][x][t][valaszStr].length <= i )
							betu = nincsBetu;
						else
							betu = rule[ridx][y][x][t][valaszStr].substr(i,1);
						if ( tableTomb[Number(y)+Number(i)][x] != nincsBetu
							&& tableTomb[Number(y)+Number(i)][x] != "" )
						{//semmi
						} else
							tableTomb[Number(y)+Number(i)][x] = betu;
					}
				}
			}
		}
	}
	return tableTomb;
}

//kell
function createTable( ridx, tableTomb )
{
	var mycurrent, mycurrent_cell, mycurrent_row;
	var currenttext;
	var x, y, k, l, m;

	var container = document.getElementById("rejtvenyContainer"+ridx);
//	var delTable  = document.getElementById("rejtvenyTable");
//	document.removeChild( delTable);

	// creates an element whose tag name is TABLE
	var mytable = document.createElement("TABLE");
	mytable.setAttribute("border","0");
	mytable.setAttribute("id","rejtvenyTable"+ridx);

	// creates an element whose tag name is TBODY
	var mytablebody = document.createElement("TBODY");

	for(y=0; y<maxRow; y++)
	{
		if( y == 0 )
		{//első sor kiírás, fejléc
			mycurrent_row = _createFirstRow(ridx);
			mytablebody.appendChild(mycurrent_row);
		}

		mycurrent_row=document.createElement("TR");
		for(x=0; x<maxCol; x++)
		{//tartalom kiírás
			if( x == 0 )
			{//első oszlop, ID kiírás
				mycurrent_cell = _createFirstCell( ridx, y );
				mycurrent_row.appendChild(mycurrent_cell);
			}

			mycurrent_cell = _createDataCell( ridx, x, y, tableTomb );
			mycurrent_row.appendChild(mycurrent_cell);
		}
		mytablebody.appendChild(mycurrent_row);
	}
	mytable.appendChild(mytablebody);
	container.appendChild(mytable);
}

//kell
function recreateTable(ridx)
{
	var b = document.getElementById("rejtvenyContainer"+ridx);
	var o = document.getElementById("rejtvenyTable"+ridx);
	b.removeChild( o );

	var tableTomb = convertRule(ridx, false, 0,0,0);
	createTable( ridx, tableTomb );
}

//kell
//válasz bekérés
function modifyCell( ridx, x, y, obj )
{
	var lehetV = false, modifyV = false;
	var lehetH = false, modifyH = false;

	if( aktivcell )
	{
		Elem.setAttribute( aktivcell, "className", dataCellKClassName );
		aktivcell = null;
	}
	Elem.setAttribute( obj, "className", aktivCellClassName );
	aktivcell = obj;

	//van-e már erre a mezőre szabály, ha igen, akkor módosítás lesz
	if( rule[ridx][y] && rule[ridx][y][x] && rule[ridx][y][x][0] )
	{
		modifyH = true;
	} else
	{
		modifyH = false;
	}

	if( rule[ridx][y] && rule[ridx][y][x] && rule[ridx][y][x][1] )
	{
		modifyV = true;
	} else
	{
		modifyV = false;
	}

	if( !modifyH && ! modifyV )
	{//hibaszöveg inkább debug miatt van
		alert( LcoLng['pkrejt_valaszfelvetel']);
		return false;
	}

	displayInputs( ridx, x, y, modifyV, modifyH );
}

//vízszintes szó
function compareH( ridx, x, y, hossz, newRule )
{
	var ry, rx, t, i;

//vízszintessel x-1-től x+(hossz+1)-1 -ig
//függőnél: x-1 és x+hossz nem lehet rule[ridx] ÉS ry-1 és ry+1 nem lehet kapcsolatban
//függőleges szót nem bővíthet (előtte, utána)
//compareV-nél jobban le van írva

	for( ry in rule[ridx] )
	{
		if( typeof( rule[ridx][ry] ) == "function" ) continue;
		for( rx in rule[ridx][ry] )
		{
			if( typeof( rule[ridx][ry][rx] ) == "function" ) continue;
			for( t in rule[ridx][ry][rx] )
			{
				if( typeof( rule[ridx][ry][rx][t] ) == "function" ) continue;
				if( !newRule && y == ry && x == rx && t == 0 )
				{//modify
					continue;
				}
				if( t == "0" )
				{//vízszintes
					//vízszintessel x-1-től x+(hossz+1)-1 -ig
					if( y == ry &&
						_metszett( x-1, x+hossz, rx, Number(rx) + Number(rule[ridx][ry][rx][t][hosszStr])-1 ) )
					{
						return false;
					}
				} else
				{//függőleges
					//szó kezdése _előtt_ nem lehet függőleges betűsorból
					if( x-1 == rx &&
						( y >= ry && y <= Number(ry) + Number(rule[ridx][ry][rx][t][hosszStr]-1) ) )
					{
						return false;
					}
					//szó vége _után_ nem lehet függőleges betűsorból
					if( !newRule &&
						( x+hossz == rx &&
						( y >= ry && y <= Number(ry) + Number(rule[ridx][ry][rx][t][hosszStr]-1) ) ) )
					{
						return false;
					}
					//függőleges szót nem hosszabbíthat meg
					if( ( x >= rx && (x + hossz - 1) <= rx )
						&& ( y == ry -1 || y == Number(ry) + Number(rule[ridx][ry][rx][t][hosszStr]) ) )
					{
						return false;
					}
				}
			}
		}
	}

	return true;
}

//függőleges szó
function compareV( ridx, x, y, hossz, newRule )
{
	var ry, rx, t, i;

//függőleges szabály szavába nem lóghat bele, nem növelheti meg.
// Ha x=rx, akkor y-1 és y+hossz-1+1 -en belül nem lehet szabály
//vízszintes szabályt nem bővíthet és a vízszintes szó nem bővítheti az új szavat, azaz
// az új szó előtt és után nem lehet meglévő szó

	for( ry in rule[ridx] )
	{
		if( typeof( rule[ridx][ry] ) == "function" ) continue;
		for( rx in rule[ridx][ry] )
		{
			if( typeof( rule[ridx][ry][rx] ) == "function" ) continue;
			for( t in rule[ridx][ry][rx] )
			{
				if( typeof( rule[ridx][ry][rx][t] ) == "function" ) continue;
				if( !newRule && y == ry && x == rx && t == 1 )
				{//modify
					continue;
				}
				if( t == "1" )
				{//függőleges
					//függőlegessel y-1-től y+(hossz+1)-1 -ig
					if( x == rx &&
						_metszett( y-1, y+hossz, ry, Number(ry) + Number(rule[ridx][ry][rx][t][hosszStr])-1 ) )
					{
						return false;
					}
				} else
				{//vízszintes
					//szó kezdése _előtt_ nem lehet vízszintes betűsorból
					if( y-1 == ry &&
						( x >= rx && x <= Number(rx) + Number(rule[ridx][ry][rx][t][hosszStr]-1) ) )
					{
						return false;
					}
					//szó vége _után_ nem lehet vízszintes betűsorból
					if( !newRule &&
						y+hossz == ry &&
						( x >= rx && x <= Number(rx) + Number(rule[ridx][ry][rx][t][hosszStr]-1) ) )
					{
						return false;
					}
					//vízszintes szót nem hosszabbíthat meg
					if( ( y >= ry && (y + hossz - 1) <= ry )
						&& ( x == rx -1 || x == Number(rx) + Number(rule[ridx][ry][rx][t][hosszStr]) ) )
					{
						return false;
					}
				}
			}
		}
	}

	return true;
}

//kell
function createRule(ridx, x,y,t)
{
	var ok = false, hiba = false;
	var valasz = "", kerdes = "", betu = "";
	var valaszLength = 0;

	if( t == 0 )
	{
		valasz = document.getElementById("valaszH"+ridx ).value;
		kerdes = document.getElementById("kerdesH"+ridx ).value;
	} else
	{
		valasz = document.getElementById("valaszV"+ridx ).value;
		kerdes = document.getElementById("kerdesV"+ridx ).value;
	}
//alert("yxtKV::"+y+"+"+x+"+"+t+"+"+kerdes+"+"+valasz);
	valaszLength = valasz.length;

	//hosssz figyelembevételével ellenőrzés, majd rule[ridx] készítés
	$ok = false;
	if( rule[ridx][y][x][t][hosszStr] >= valaszLength )
		ok = true;

	if( !ok )
	{
		alert(LcoLng['pkrejt_valaszhosszu']);
		return false;
	}
	//betűk illeszkednek-e a meglévőekhez, modify-t nem belerakva
	var tableTomb = convertRule( ridx, true, x, y, t);
	for(var i=0;i<valaszLength;i++)
	{
		betu = valasz.substring(i,i+1);
		if( t == 0 )
		{
			hiba = ( tableTomb[y][x+i] != nincsBetu && tableTomb[y][x+i] != betu && tableTomb[y][x+i] != "" );
		} else
		{
			hiba = ( tableTomb[y+i][x] != nincsBetu && tableTomb[y+i][x] != betu && tableTomb[y+i][x] != "" );
		}
		if( hiba )
		{
			alert( LcoLng['pkrejt_betuegyezes'] );
			return false;
		}
	}

	//rule[ridx] készítés
	addRule(ridx, x, y, t, kerdes, valasz );

	hideVInputs(ridx);
	hideHInputs(ridx);

	recreateTable(ridx);

	return true;
}

//kell
function addRule(ridx, x, y, t, kerdes, valasz )
{
	if( !rule[ridx][y] )
	{
alert("B1");
		rule[ridx][y] = new Array();
	}
	if( !rule[ridx][y][x] )
	{
alert("B2");
		rule[ridx][y][x] = new Array();
	}
	if( !rule[ridx][y][x][t] )
	{
alert("B3");
		rule[ridx][y][x][t] = new Array();
	}

	//elvileg léteznie kell a tömbnek
	rule[ridx][y][x][t][kerdesStr] = kerdes;
	rule[ridx][y][x][t][valaszStr] = valasz;
//	rule[ridx][y][x][t][hosszStr] = valaszLength;
}

function deleteRule(ridx, x,y,t)
{
	if( confirm( LcoLng['pkrejt_condszodel'] ) )
	{
		// php-ben nincsenek figyelembevéve a 0 hosszú szavak
		rule[ridx][y][x][t][valaszStr] = '';

		hideVInputs(ridx);
		hideHInputs(ridx);

		recreateTable(ridx);

		return true;

	}
}

//lehet modify-t itt kellene ellenőrizni?!
//kell
function displayInputs( ridx, x, y, modifyV, modifyH )
{
	if( modifyH )
		displayHInputs(ridx, x,y,rule[ridx][y][x][0][kerdesStr],
			rule[ridx][y][x][0][valaszStr],rule[ridx][y][x][0][hosszStr]);
	else
		hideHInputs(ridx);

	if( modifyV )
		displayVInputs(ridx, x,y,rule[ridx][y][x][1][kerdesStr],
			rule[ridx][y][x][1][valaszStr],rule[ridx][y][x][1][hosszStr]);
	else
		hideVInputs(ridx);
}

//kell
function displayVInputs(ridx, x,y,kerdes,valasz,hossz)
{
	document.getElementById("rejtvenyVInput"+ridx).style.display = "";

	var kInp = document.getElementById("kerdesV"+ridx);
	var vInp = document.getElementById("valaszV"+ridx);
	var butt = document.getElementById("VOK"+ridx);
	var bdel = document.getElementById("VDEL"+ridx);

/* FN: NEM JÖTTEM RÁ MIÉRT NEM MŰKÖDIK
	kInp.setAttribute("value", kerdes);
	vInp.setAttribute("value", valasz);
	vInp.setAttribute("maxLength",hossz);
*/
	Elem.setContent( kInp, kerdes );
//	kInp.value = kerdes;
	vInp.value = valasz;
	vInp.maxLength = hossz;

	//buzi IE miatt setAttribute nem megy onclick-re
	butt.onclick = function(){ createRule(ridx, x,y,1); }
	bdel.onclick = function(){ deleteRule(ridx, x,y,1); }
}

//kell
function displayHInputs(ridx, x,y,kerdes,valasz,hossz)
{
	document.getElementById("rejtvenyHInput"+ridx).style.display = "";

	var kInp = document.getElementById("kerdesH"+ridx);
	var vInp = document.getElementById("valaszH"+ridx);
	var butt = document.getElementById("HOK"+ridx);
	var bdel = document.getElementById("HDEL"+ridx);
//alert(kInp);

/* FN: NEM JÖTTEM RÁ MIÉRT NEM MŰKÖDIK
	kInp.setAttribute("value", kerdes);
	vInp.setAttribute("value", valasz);
	vInp.setAttribute("maxLength",hossz);
*/
	Elem.setContent( kInp, kerdes );
//	kInp.value = kerdes;
	vInp.value = valasz;
	vInp.maxLength = hossz;

	//buzi IE miatt setAttribute nem megy onclick-re
	butt.onclick = function(){ createRule(ridx, x,y,0); }
	bdel.onclick = function(){ deleteRule(ridx, x,y,0); }
}

//kell
function hideVInputs(ridx)
{
	//buzi IE miatt nem megy DOM-al ( vagy én nem találtam rá megoldást)
	var div = document.getElementById("rejtvenyVInput"+ridx);
	if( div )
	{
		div.style.display = "none";
	}
/*
	trace( 'hide VInputs' );
	if( aktivcell )
	{
		Elem.setAttribute( aktivcell, "className", Elem.getAttribute( aktivcell, "beforeaktive_class" ) );
		aktivcell = null;
	}
*/
//	var container = document.getElementById("rejtvenyVInput");
//	container.setAttribute("style","display:none");
}

//kell
function hideHInputs(ridx)
{
	//buzi IE miatt nem megy DOM-al ( vagy én nem találtam rá megoldást)
	var div = document.getElementById("rejtvenyHInput"+ridx);
	if( div )
	{
		div.style.display = "none";
	}
/*
	trace( 'hide HInputs' );
	if( aktivcell )
	{
		Elem.setAttribute( aktivcell, "className", Elem.getAttribute( aktivcell, "beforeaktive_class" ) );
		aktivcell = null;
	}
*/
}

//kell
function _metszett( n11, n12, n21, n22 )
{
	return (
		( n11<= n21 && n12 >= n21 )
		|| ( n11 >= n21 && n11 <= n22 )
		|| ( n12 >= n21 && n12 <= n22 ) );
}

//kell
function _createFirstRow(ridx)
{//első sor kiírás, fejléc
	var mycurrent_row=document.createElement("TR");
	k = 0;
	l = 0;
	m = headerID.length;
	for(i=0; i<maxCol; i++)
	{//első sor, fejléc
		if( i == 0 )
		{//bal felső sarok
			mycurrent_cell=document.createElement("TD");
			mycurrent_cell.setAttribute(classNameStr,headerCellClassName);
			mycurrent_cell.setAttribute(classNameStrIE,headerCellClassName);
			currenttext=document.createTextNode("X");
			mycurrent_cell.appendChild(currenttext);
			mycurrent_row.appendChild(mycurrent_cell);
		}

		mycurrent_cell=document.createElement("TD");
		mycurrent_cell.setAttribute(classNameStr,headerCellClassName);
		mycurrent_cell.setAttribute(classNameStrIE,headerCellClassName);

		if( k +1 >= m )
		{
			l++;
			k = 0;
		}
		currenttext=document.createTextNode( headerID[ l ] + headerID[ k + 1 ] );
		mycurrent_cell.appendChild(currenttext);
		mycurrent_row.appendChild(mycurrent_cell);
		k++;
	}
	return mycurrent_row;
}

//kell
function _createFirstCell( ridx, row )
{//első oszlop, ID kiírás
	var mycurrent_cell=document.createElement("TD");
	mycurrent_cell.setAttribute(classNameStr,headerCellClassName);
	mycurrent_cell.setAttribute(classNameStrIE,headerCellClassName);
	currenttext=document.createTextNode( row + 1 );
	mycurrent_cell.appendChild(currenttext);

	return mycurrent_cell;
}

//kell
function _createDataCell( ridx, x, y, tableTomb )
{
	var dataClass = dataCellClassName;
	var dataKClass = dataCellKClassName;

	//forejtvenyben benne van-e a cella
	if( _isMainRule( ridx, x, y ) )
	{
		dataClass = mainCellClassName;
		dataKClass = mainCellKClassName;
	}

	// creates an element whose tag name is TD
	var mycurrent_cell=document.createElement("TD");
	mycurrent_cell.setAttribute("id",ridx+"dcx"+x+"y"+y);
	// creates a Text Node
	if( tableTomb[ y ][ x ] == "" )
	{
		mycurrent_cell.setAttribute(classNameStr,emptyDataCellClassName);
		mycurrent_cell.setAttribute(classNameStrIE,emptyDataCellClassName);
		currenttext=document.createTextNode( emptyCellContent );
	} else if( tableTomb[ y ][ x ] == nincsBetu )
	{
		mycurrent_cell.setAttribute(classNameStr,dataClass);
		mycurrent_cell.setAttribute(classNameStrIE,dataClass);
		currenttext=document.createTextNode( " " );
	} else
	{
		mycurrent_cell.setAttribute(classNameStr,dataClass);
		mycurrent_cell.setAttribute(classNameStrIE,dataClass);
		currenttext=document.createTextNode( tableTomb[ y ][ x ] );
	}
    // appends the Text Node we created into the cell TD
    mycurrent_cell.appendChild(currenttext);

	if( rule[ridx][y] && rule[ridx][y][x] )
	{//kell onclick
		//buzi IE miatt setAttribute nem megy onclick-re
		if( aktivcells == true )
			Elem.setAttribute( mycurrent_cell, "onclick", "modifyCell("+ridx+", "+x+", "+y+", this );" );
		mycurrent_cell.setAttribute(classNameStr,dataKClass);
		mycurrent_cell.setAttribute(classNameStrIE,dataKClass);
		//mycurrent_cell.setAttribute("onclick", "javascript:modifyCell( "+x+","+y+");");
	}

	return mycurrent_cell;
}

//benne van-e az x,y a mainRule-ban
function _isMainRule( ridx, kx, ky )
{
	var x,y,t;

	for( y in mainrule[ridx] )
	{
		if( typeof( mainrule[ridx][y] ) == "function" ) continue;
		for( x in mainrule[ridx][y] )
		{
			if( typeof( mainrule[ridx][y][x] ) == "function" ) continue;
			for( t in mainrule[ridx][y][x] )
			{
				if( typeof( mainrule[ridx][y][x][t] ) == "function" ) continue;
				for( var i=0; i<=mainrule[ridx][y][x][t][hosszStr]; i++ )
				{
					if( t == 0 )
					{
						if( kx == Number(x)+i && ky == Number(y) )
							return true;
					} else
					{
						if( ky == Number(y)+i && kx == Number(x) )
							return true;
					}
				}
			}
		}
	}
	return false;
}

//kell
function createForejtvenyBox( ridx, mod, x,y,t )
{
	//meghalt function, alias
	createFoBoxes(ridx, mod, x,y,t);
}

//kell
function createFoBoxes(ridx, mod, mx,my,mt)
{
	var mcontainer = document.getElementById("forejtveny"+ridx);
	var o = document.getElementById("mainrules"+ ridx);
	if( o != null )
		mcontainer.removeChild( o );


	var container = document.createElement( "DIV" );
	container.setAttribute("id", "mainrules" + ridx );
	var p, txt, i;

	//eddigi szó kiírása
	p = document.createElement( "P" );
	txt = document.createTextNode( LcoLng['pkrejt_osszeolvasas'] + _getMainRuleWord( ridx ) );
	p.appendChild( txt );
	container.appendChild( p );

	mcontainer.appendChild( container );
}

//kell
function _getMainRuleWord( ridx )
{
	var tableTomb = convertRule(ridx);
	var x,y,t;
	var szo = "";

	for( y in mainrule[ridx] )
	{
		if( typeof( mainrule[ridx][y] ) == "function" ) continue;
		for( x in mainrule[ridx][y] )
		{
			if( typeof( mainrule[ridx][y][x] ) == "function" ) continue;
			for( t in mainrule[ridx][y][x] )
			{
				if( typeof( mainrule[ridx][y][x][t] ) == "function" ) continue;
				for( var i=0; i<=mainrule[ridx][y][x][t][hosszStr]; i++ )
				{
					if( t == 0 )
						szo = szo + tableTomb[Number(y)][Number(x)+i];
					else
						szo = szo + tableTomb[Number(y)+i][Number(x)];
				}
			}
		}
	}
	return szo;
}

//kell
function _getColId( x )
{
	var back = "";
	var k = 0;
	var l = 0;
	var m = headerID.length;
	for(i=0; i<maxCol; i++)
	{//első sor, fejléc
		if( k +1 >= m )
		{
			l++;
			k = 0;
		}
		if( x == i )
			return headerID[ l ] + headerID[ k + 1 ];

		k++;
	}
	return false;
}

// számrendszer átalakítás, megadott jelkészlettel
function toN( szam, keszlet )
{
	var uj = '';
	var rendszer = keszlet.length;
	szam = szam / rendszer;
	if( szam >= 1 )
	{
		uj = toN( Math.floor( szam ), keszlet );
		szam -= Math.floor( szam );
		
	} 
	nr = Math.floor( szam * rendszer );
	return uj + keszlet.charAt( nr );
}


function showkerdesek( ridx )
{
	var divV = document.getElementById( "kerdesek_vizszintes" + ridx );
	var divF = document.getElementById( "kerdesek_fuggoleges" + ridx );
	var divVB = document.getElementById( "kerdesekblokk_vizszintes" + ridx );
	var divFB = document.getElementById( "kerdesekblokk_fuggoleges" + ridx );

	var jelkeszlet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	for( ry in rule[ridx] )
	{
		if( typeof( rule[ridx][ry] ) == "function" ) continue;
		for( rx in rule[ridx][ry] )
		{
			if( typeof( rule[ridx][ry][rx] ) == "function" ) continue;
			for( t in rule[ridx][ry][rx] )
			{
				if( typeof( rule[ridx][ry][rx][t] ) == "function" ) continue;
				if( t == "1" )
				{//függőleges
					divF.innerHTML += toN( rx, jelkeszlet ) + ( parseInt( ry ) + 1 ) + " " + rule[ridx][ry][rx][t]['kerdes'] + "<br/>";    
				} else
				{ // Vízszintes
					divV.innerHTML += toN( rx, jelkeszlet ) + ( parseInt( ry ) + 1 ) + " " + rule[ridx][ry][rx][t]['kerdes'] + "<br/>";
				}
			}
		}
	}
	if( divF.innerHTML != "" )	divFB.style.display = "";
	if( divV.innerHTML != "" )	divVB.style.display = "";
}
