<?php
/*
  www.oscGold.com (C) Kamelia-Net Jacek Krysiak
  modul oscGold wer 4.0
*/

//Rodzice kategorii
$sql = 'SELECT * FROM swistak_categories';
$categories_query = tep_db_query($sql);

if (tep_db_num_rows($categories_query) > 0 ) {
  $drzewo ='';
  while($categoryInfo = tep_db_fetch_array($categories_query)){
    $category_id = $categoryInfo['categories_id'];
    $category_name = $categoryInfo['categories_name'];
    $parent_id = $categoryInfo['parent_id'];

    if ($categoryInfo['node'] == 'rodzic') {
      $drzewo .= "" . $categoryInfo['node'] . "[" . $categoryInfo['categories_id'] . "]=\"" . $categoryInfo['categories_name'] . "\";\n";
    }
    if ($categoryInfo['node'] == 'dziecko') {
      $drzewo .= "" . $categoryInfo['node'] . "[" . $categoryInfo['categories_id'] . "]=[" . $categoryInfo['childs'] . "];\n";
    }
  }

?>
<?php
if ( $edycja == false ) {
  echo '<form name="catform" action="" method="post">';
}
?>
            <table align="center" border="0" width="100%" cellspacing="0" cellpadding="3" style="border-color: #424242; border-width: 1px; border-style: solid;">
              <tr>
                <td>
                  <div>
                  <table border="0" cellspacing="0" cellpadding="0" width="100%">
                    <tr>
                      <td align="center"><input type="hidden" name="default_data" value="1">
                        <script language="JavaScript">
                        <!--
                        function change_auction_type(form)
                        {
                          for (i=0;i<form.auction_type.length;i++)	
                          {
                            if (form.auction_type[i].checked)
                            form.auction_type_tmp.value=form.auction_type[i].value;
                          }
                        }
                        //-->
                        </script>
                        <SCRIPT language=JavaScript1.1><!--
                        var line = "-----------------------------------";
                        var offset=0;
                        var zmieniono=0;
                        dziecko = new Array;
                        rodzic = new Array;
                        rodzice = new Array;
                        rodzice_rev = new Array;
                        rodzice_index_rev = new Array;
                        rodzice[0]=0;
                        -->
                        </SCRIPT>
                        <SCRIPT language='JavaScript1.1'><!--
                        <?php echo $drzewo; ?>

                        function WyczyscForme(select_id)
                        {
                            for (i = select_id; i < 3; i++)
                            {
                              tabela[i].length = 0;
                              tabela[i].options[0] = new Option(line);
                            }
                        }

                        function DodajWartosc(select_id,index,cat_name,index_kategorii)
                        {
                          tabela[select_id].options[index] = new Option(cat_name);
                          tabela[select_id].options[index].value=index_kategorii;
                        }
                        function LastOrPenultimate(index_kategorii)
                        {
                          if(!dziecko[index_kategorii])
                            return 1;
                          else 	{
                            if (!allow_to_select_penultimate)
                              return 0;
                            else
                            {
                              if (allow_to_select_penultimate==2) 				return 1;

                              for (i = 0; i < dziecko[0].length; i++)
                              {
                                        if(dziecko[0][i]==index_kategorii)
                                  return 0;
                              }
                              return 1;
                            }
                          }
                        }

                        function OdswiezRodzica(select_id)
                        {
                          czasowy_rodzic=rodzice[select_id+offset];

                            if((dziecko.length!=0)&&(dziecko[czasowy_rodzic]))
                          {
                              for (i = 0; i < dziecko[czasowy_rodzic].length; i++)
                              {
                                index_kategorii=dziecko[czasowy_rodzic][i];

                              DodajWartosc(select_id,i,rodzic[index_kategorii],index_kategorii);

                                    if (index_kategorii==rodzice[select_id+offset+1])
                                tabela[select_id].selectedIndex=i;

                                    if (i == (dziecko[czasowy_rodzic].length-1))
                                DodajWartosc(select_id,i+1,line,0);
                              }
                          }
                        }

                        function PoZmianie(select_id)
                        {
                          if (select_id>1)
                          {
                                WyczyscForme(0);
                                OdswiezRodzica(0);
                            OdswiezRodzica(1);
                            OdswiezRodzica(2);
                          }
                          else
                          {
                            WyczyscForme(select_id+1);
                            OdswiezRodzica(select_id+1);
                          }
                        }

                        function ZmianaZaznaczenia(select_id)
                        {

                          index=tabela[select_id].selectedIndex;

                          document.catform.kategoria1.value = '';

                            if (index<0)
                            return;

                          index_kategorii=tabela[select_id].options[index].value;

                          document.catform.podkategoria.value = index_kategorii;

                            rodzice[select_id+offset+1]=index_kategorii;
                          rodzice.length=select_id+offset+2;
                          
                          if (LastOrPenultimate(index_kategorii))
                            document.catform.kategoria1.value = index_kategorii;

                          if ((select_id<2)&&(offset))
                          {
                            minus = 2 - select_id;

                            if (offset<minus)
                              offset=0
                            else
                              offset-=minus;

                                WyczyscForme(0);
                                OdswiezRodzica(0);
                            OdswiezRodzica(1);
                            OdswiezRodzica(2);

                            return;
                          }

                            if (tabela[select_id].options[index].text==line)
                          {
                            WyczyscForme(select_id+1);
                          }
                          else 				{
                                            if (!dziecko[index_kategorii])
                                  {
                                    WyczyscForme(select_id+1);
                                  }
                                  else 					{
                                                      if  (select_id==2)
                                                {
                                                  offset++;
                                                }
                              PoZmianie(select_id);
                                  }
                                }

                        document.catform.cat0.value=document.catform.tabela_0.value;
                        document.catform.cat1.value=document.catform.tabela_1.value;
                        document.catform.cat2.value=document.catform.tabela_2.value;

                        }

                        function ZnajdzRodzica(child,poziom)
                        {
                          if (dziecko.length>0)
                            for (p=0;p<dziecko.length;p++)
                              if (dziecko[p])
                                for (c=0;c<dziecko[p].length;c++)
                                  if (dziecko[p][c]==child)
                                  {
                                    rodzice_rev[poziom]=p;
                                    rodzice_index_rev[poziom]=c;

                                    if (poziom>2)
                                      offset=poziom-2;

                                    if (p!=0)
                                      ZnajdzRodzica(p,poziom+1);
                                    return;
                                  }
                        }

                        function ZmianaIndexu(index,subindex)
                        {
                          rodzice_index = new Array;

                          WyczyscForme(0);

                          rodzice.length=1;
                          rodzice_rev.length=0;
                          rodzice_index.length=0;
                          offset=0;

                          if (index=='' || index==0)
                            index=subindex;

                            if (!rodzic[index])
                          {
                            PoZmianie(-1);
                            document.catform.kategoria1.value='';
                            return;
                          }

                          ZnajdzRodzica(index,0);
                          for (i=0;i<rodzice_rev.length;i++)
                          {
                            rodzice[i]=rodzice_rev[rodzice_rev.length-1-i];
                            rodzice_index[i]=rodzice_index_rev[rodzice_rev.length-1-i];
                          }

                          for (j=0;j<3;j++)
                          {
                            if(rodzice.length>j)
                              {
                              OdswiezRodzica(j);
                              tabela[j].selectedIndex=rodzice_index[j+offset];
                              }
                          }

                              if (tabela[rodzice.length-1])
                            ZmianaZaznaczenia(rodzice.length-1);

                        }
                        //-->
                        </script>
                        <table cellspacing="0"  cellpadding="0" border="0">
                          <tr>
                            <td><select size="11" class="form" OnChange="ZmianaZaznaczenia(0); zmieniono=1;" OnClick="if (!zmieniono) ZmianaZaznaczenia(0); else zmieniono=0;" name="tabela_0">
                            <option></option>
                            </select>
                            </td>
                            <td><select size="11" class="form" OnChange="ZmianaZaznaczenia(1); zmieniono=1;" OnClick="if (!zmieniono) ZmianaZaznaczenia(1); else zmieniono=0;" name="tabela_1">
                            <option></option>
                            </select>
                            </td>
                            <td><select size="11" class="form" OnChange="ZmianaZaznaczenia(2); zmieniono=1;" OnClick="if (!zmieniono) ZmianaZaznaczenia(2); else zmieniono=0;" name="tabela_2">
                            <option></option>
                            </select>
                            </td>
                          </tr>

                            <tr>
                              <td height="25" colspan="3" class="main">
                                <div class="right">Numer kategorii&nbsp;<input name="kategoria1" type="text" size=5 class="form" OnChange="ZmianaIndexu(document.catform.kategoria1.value,document.catform.podkategoria.value)">
                                <input name="podkategoria" type="hidden"><input type="hidden" name="cat0"><input type="hidden" name="cat1"><input type="hidden" name="cat2"></div>
                              </td>
                            </tr>
                        </table>
                        <script language="JavaScript1.1">
                        <!--
                                allow_to_select_penultimate=0; 				var tabela = new Array;
                                j = 0;

                                for (i = 0; i < document.catform.elements.length; i++)
                                {
                                  if (document.catform.elements[i].name.indexOf("tabela") != -1)
                                        tabela[j++] = document.catform.elements[i];
                                }
                                ZmianaIndexu(document.catform.kategoria1.value,document.catform.podkategoria.value);
                        //-->
                        </script>
                     </td>
                    </tr>
                  </table>
                  </div>
                </td>
              </tr>
            </table>
<?php
if ( $edycja == false ) {
  echo '</form>';
}
?>
<?php
} else {
  echo '<h3>Nie utworzono jeszcze drzewa kategorii - kliknij przycisk Utwórz drzewo kategorii</h3>';
}
?>