/* najde vsetky suvisiace referencie z navolenych cisiel
------------------------------------------------------------------------- */

function tl_mozno(hladaneCisla,existujuceReferencie,polePanelov){
	//hladana referencia - zlozena z vyklikanych cisiel na navigacnych paneloch
	var zvoleneCislo1 = hladaneCisla[0];
	var zvoleneCislo2 = hladaneCisla[1];
	var zvoleneCislo3 = hladaneCisla[2];
	var zvoleneCislo4 = hladaneCisla[3];

	//definovanie poli suvisiacich podcisiel referencie
	var mozneDrieky = new Array;
	var mozneHlavy = new Array;
	var mozneMaterialy = new Array;
	var mozneUpravy = new Array;

	//rozobranie prvkov pola existujucich referencii na podcisla
	for (z in existujuceReferencie){
	var existCislo1 = existujuceReferencie[z].slice(1,2);
	var existCislo2 = existujuceReferencie[z].slice(2,3);
	var existCislo3 = existujuceReferencie[z].slice(3,4);
	var existCislo4 = existujuceReferencie[z].slice(4,5);

/* naplnenie poli moznych podcisiel podla zvolenej kombinacie
 * pri stlacani tlacitiek panelu
 -------------------------------------------------------------------------- */
/***************************** solo tlacitko ***********************************************************/
    //mozne hlavy, materialy a upravy podla zvoleneho drieku - V1xxx
    if ((zvoleneCislo1==existCislo1)&&(zvoleneCislo2=='X')&&(zvoleneCislo3=='X')&&(zvoleneCislo4=='X')){
    mozneHlavy.push(existCislo2);
    mozneMaterialy.push(existCislo3);
    mozneUpravy.push(existCislo4);
    }

    //mozne drieky, materialy a upravy podla zvolenej hlavy - Vx2xx
    if ((zvoleneCislo1=='X')&&(zvoleneCislo2==existCislo2)&&(zvoleneCislo3=='X')&&(zvoleneCislo4=='X')){
    mozneDrieky.push(existCislo1);
    mozneMaterialy.push(existCislo3);
    mozneUpravy.push(existCislo4);
    }

    //mozne drieky, hlavy a upravy podla zvoleneho materialu - Vxx3x
    if ((zvoleneCislo1=='X')&&(zvoleneCislo2=='X')&&(zvoleneCislo3==existCislo3)&&(zvoleneCislo4=='X')){
    mozneDrieky.push(existCislo1);
    mozneHlavy.push(existCislo2);
    mozneUpravy.push(existCislo4);
    }

    //mozne drieky, hlavy a materialy podla zvolenej upravy - Vxxx4
    if ((zvoleneCislo1=='X')&&(zvoleneCislo2=='X')&&(zvoleneCislo3=='X')&&(zvoleneCislo4==existCislo4)){
    mozneDrieky.push(existCislo1);
    mozneHlavy.push(existCislo2);
    mozneMaterialy.push(existCislo3);
    }

/***************************** dve tlacitka ***********************************************************/
    //mozne materialy a upravy podla zvoleneho drieku a hlavy - V12xx
    if ((zvoleneCislo1==existCislo1)&&(zvoleneCislo2==existCislo2)&&(zvoleneCislo3=='X')&&(zvoleneCislo4=='X')){
    mozneMaterialy.push(existCislo3);
    mozneUpravy.push(existCislo4);
    }

    //mozne hlavy a upravy podla zvoleneho drieku a materialu - V1x3x
    if ((zvoleneCislo1==existCislo1)&&(zvoleneCislo2=='X')&&(zvoleneCislo3==existCislo3)&&(zvoleneCislo4=='X')){
    mozneHlavy.push(existCislo2);
    mozneUpravy.push(existCislo4);
    }

    //mozne hlavy a materialy podla zvoleneho drieku a upravy - V1xx4
    if ((zvoleneCislo1==existCislo1)&&(zvoleneCislo2=='X')&&(zvoleneCislo3=='X')&&(zvoleneCislo4==existCislo4)){
    mozneHlavy.push(existCislo2);
    mozneMaterialy.push(existCislo3);
    }
       //mozne drieky a upravy podla zvolenej hlavy a materialu - Vx23x
       if ((zvoleneCislo1=='X')&&(zvoleneCislo2==existCislo2)&&(zvoleneCislo3==existCislo3)&&(zvoleneCislo4=='X')){
       mozneDrieky.push(existCislo1);
       mozneUpravy.push(existCislo4);
       }
       //mozne drieky a materialy podla zvolenej hlavy a upravy - Vx2x4
       if ((zvoleneCislo1=='X')&&(zvoleneCislo2==existCislo2)&&(zvoleneCislo3=='X')&&(zvoleneCislo4==existCislo4)){
       mozneDrieky.push(existCislo1);
       mozneMaterialy.push(existCislo3);
       }
           //mozne drieky a materialy podla zvolenej hlavy a upravy - Vxx34
           if ((zvoleneCislo1=='X')&&(zvoleneCislo2=='X')&&(zvoleneCislo3==existCislo3)&&(zvoleneCislo4==existCislo4)){
           mozneDrieky.push(existCislo1);
           mozneHlavy.push(existCislo2);
           }

/***************************** tri tlacitka ***********************************************************/
    //mozny driek podla ostatnych navolenych - Vx234
    if ((zvoleneCislo1=='X')&&(zvoleneCislo2==existCislo2)&&(zvoleneCislo3==existCislo3)&&(zvoleneCislo4==existCislo4)){
    mozneDrieky.push(existCislo1);
    }

    //mozna hlava podla ostatnych navolenych - V1x34
    if ((zvoleneCislo1==existCislo1)&&(zvoleneCislo2=='X')&&(zvoleneCislo3==existCislo3)&&(zvoleneCislo4==existCislo4)){
    mozneHlavy.push(existCislo2);
    }

    //mozny material podla ostatnych navolenych - V12x4
    if ((zvoleneCislo1==existCislo1)&&(zvoleneCislo2==existCislo2)&&(zvoleneCislo3=='X')&&(zvoleneCislo4==existCislo4)){
    mozneMaterialy.push(existCislo3);
    }

    //mozna uprava podla ostatnych navolenych - V123x
    if ((zvoleneCislo1==existCislo1)&&(zvoleneCislo2==existCislo2)&&(zvoleneCislo3==existCislo3)&&(zvoleneCislo4=='X')){
    mozneUpravy.push(existCislo4);
    }
}// koniec cyklu pre zistenie existujucich cisiel

/*************************  spustenie FUNKCIE C ******************************/
var mozneDriekyUnik = unique(mozneDrieky);
var mozneHlavyUnik = unique(mozneHlavy);
var mozneMaterialyUnik = unique(mozneMaterialy);
var mozneUpravyUnik = unique(mozneUpravy);

/*************************  spustenie FUNKCIE D ******************************/
//preberam zo vstupnych argumentov
var drieky = polePanelov[0];
var hlavy = polePanelov[1];
var materialy = polePanelov[2];
var upravy = polePanelov[3];
//najdem id ovplyvnenych tlacitok pre kazdy panel
var mozneTlacitkaDrieku = zCisielNaTlxx(mozneDriekyUnik,drieky);
var mozneTlacitkaHlavy = zCisielNaTlxx(mozneHlavyUnik,hlavy);
var mozneTlacitkaMaterialu = zCisielNaTlxx(mozneMaterialyUnik,materialy);
var mozneTlacitkaUpravy = zCisielNaTlxx(mozneUpravyUnik,upravy);

//spojim ich do spolocneho pola (k prvemu polu pridam ostatne tri)
mozneTlacitka = new Array;
mozneTlacitka = mozneTlacitkaDrieku.concat(mozneTlacitkaHlavy,mozneTlacitkaMaterialu,mozneTlacitkaUpravy);

return mozneTlacitka;
}
