// handlovanie upravovacích toolbarov a akčného toolbaru
//akcia bude prebiehať tak, že preloopujem cez všetky h3/h4 tagy na stránke
//a ak budú mať meno comment_niečo, alebo equi_niečo, alebo čokoľvekZnáme_niečo,
//tak pridám do formu na actionToolbare hidden inputy v ktorých bude čo je to niečo
//(podľa tej špecifikácie čo som si napísal na papier)

var selectedItems = 0;
var soloButtons = 0;

function switchToolbar(elemID, icoName)
{ 
  if($(elemID).className == icoName)
  {
    //blikni a zobraz sa len ak už nie si zobrazený, žejo? :-)
    if($("actionToolbar").style.display == "none")
    {
      if(soloButtons == 0)
      {
        //ak nie sú solobuttony, uisti sa, že je zapnuté right
        $("atRight").style.display = "inline";
        $("atLeft").style.display = "none";
        $("soloActions").value = "false";
      }
      else if(soloButtons > 0)
      {
        $("atLeft").style.display = "inline";
        $("atRight").style.display = "none";
        $("soloActions").value = "true";
      }
      
      $("actionToolbar").appear({duration: 0.3});
      $("actionToolbar").highlight();
    }
    
    selectedItems = selectedItems + 1;
    tmp = document.createElement("input");
    tmp.setAttribute("id", "s_" + elemID);
    tmp.setAttribute("name", "s_" + elemID);
    tmp.setAttribute("value", "selected");
    
    $("idContainer").appendChild(tmp)
    $(elemID).className = icoName + "_active";
    x = $($(elemID).parentNode).viewportOffset()["left"];
    y = $($(elemID).parentNode).viewportOffset()["top"] + $($(elemID).parentNode).getDimensions()["height"];
    wth = $($(elemID).parentNode).getDimensions()["width"];
    
    //ajax request na server aby dostal validný obsah toolbaru
    new Ajax.Request("ax/axGetToolbar.php?id=" + elemID,
    {
      method: "get",
      onSuccess: function(res)
      {
        $(elemID + "_toolbar").innerHTML = res.responseText;
      },
      onFailure: function()
      {
        $(elemID + "_toolbar").innerHTML = "Chyba při generování toolbaru";
      }
    });

    $(elemID + "_toolbar").style.width = wth;
    $(elemID + "_toolbar").appear({duration: 0.3});
  }
  else if($(elemID).className == icoName + "_active")
  {
    selectedItems = selectedItems - 1;
    $("idContainer").removeChild($("s_" + elemID));
    
    //ak bola toto posledná selectnutá vec, tak schovaj toolbar
    if(selectedItems == 0)
    {
      //(keď je tam aj ten highlight, tak je to strašne frajerské a cool)
      $("actionToolbar").highlight();
      $("actionToolbar").fade({duration: 0.8});
    }
    
    $(elemID).className = icoName;
    $(elemID + "_toolbar").fade({duration: 0.3});
  }
}

function switchIcon(elemID, icoName)
{ 
  if($(elemID).className == icoName)
  {
    soloButtons = soloButtons + 1;
    $(elemID).className = icoName + "_active";
    
    try
    {
      $("idContainer").removeChild("s_" + elemID);
    }
    catch(e)
    {
      //blabla
    }
    
    tmp = document.createElement("input");
    tmp.setAttribute("type", "hidden");
    tmp.setAttribute("id", "a_" + elemID);
    tmp.setAttribute("name", "a_" + elemID);
    tmp.setAttribute("value", "selected");
    
    $("idContainer").appendChild(tmp);
  }
  else if($(elemID).className == icoName + "_active")
  {
    $("idContainer").removeChild($("a_" + elemID));
    
    soloButtons = soloButtons - 1;
    $(elemID).className = icoName;
    
    //deaktivuj všetky ostatné solobuttony
    //(traverzuj jeho susedné nody, a ak prvé tri písmená sú ico, a nerovná sa icoEdit2,
    //tak vieš že je to to čo hľadáš a deaktivuješ ho.)
    
    //element.nextSibling a element.previousSibling
    //loopuj, opováž rekurziou!
    
    //elem = element.nextSibling, elem.deaktivuj, elem = elem.nextSibling... atď...
    //a pozor na disabled buttony
  }
  
  //ak je počet solo buttonov (tých čo nie sú kompatibilné s hromadnou akciou, čiže ktorýchkoľvek...)
  //väčší ako nula, tak pravá časť (vykonanie hromadnej akcie) nie je dostupná. zašedne a lockne sa
  //a povolí sa ľavá časť
  if(soloButtons > 0)
  {
    $("atLeft").appear({duration: 0.3});
    $("atRight").fade({duration: 0.3});
  }
  else if(soloButtons == 0) //v opačnom prípade je to naopak
  {
    $("atRight").appear({duration: 0.3});
    $("atLeft").fade({duration: 0.3});
  }
}

function switchDeleteFriend(friend)
{
  if($("txtAction[" + friend + "]").value == "delete")
  {
    $("txtAction[" + friend + "]").value = "";
  }
  else if($("txtAction[" + friend + "]").value == "")
  {
    $("txtAction[" + friend + "]").value = "delete";
  }
}

function changeIcon(elemID, icoName)
{ 
  if($(elemID).className != icoName)
  {
    if($(elemID).fixed != "true")
    {
      $(elemID).className = icoName;
    }
  }
}

function setDisappear(id)
{
  setTimeout("$('" + id + "').highlight();", 1500);
  setTimeout("$('" + id + "').fade({duration : 1});", 2000);
}

function clickEdit(id, cat)
{
  //bude sa vetviť podľa kategórií, napr. edit postu vo fóre alebo v komentoch k spovedi sa edituje v pridávacom okne,
  //takže nerobím submit...
  if(cat == "comment")
  {
    doCommentEdit(id);
  }
  else if(cat == "post")
  {
    doPostEdit(id);
  }
  else
  {
    $("soloActions").value = "Edit-" + cat + "-" + id;
    $("actionForm").submit();
  }
}

function doCommentEdit(id)
{
  new Ajax.Request("ax/axGetComment.php?id=" + id, {
    onSuccess: function(response){
      $("txtText").value = response.responseText;

      hid = document.createElement("input");
      hid.value = id;
      hid.type = "hidden";
      hid.id = "hID";
      hid.name = "hID";

      //form sa volá frmAddComment
      $("frmAddComment").appendChild(hid);
      $("AddCommentTitle").innerHTML = "Upravit komentář";
      $("cmdAddComment").value = "Uložit";
      $("AddCommentTitle").scrollIntoView(true);
    }
  });
}

function doPostEdit(id)
{
  new Ajax.Request("ax/axGetForumPost.php?id=" + id, {
    onSuccess: function(response){
      $("txtText").value = response.responseText;

      hid = document.createElement("input");
      hid.value = id;
      hid.type = "hidden";
      hid.id = "hID";
      hid.name = "hID";

      //form sa volá frmAddComment
      $("frmAddComment").appendChild(hid);
      $("AddCommentTitle").innerHTML = "Upravit komentář";
      $("cmdAddComment").value = "Uložit";
      $("AddCommentTitle").scrollIntoView(true);
    }
  });
}

function switchVisibleTo(id, val)
{
  //ak je to tá istá hodnota ako bola pôvodne, tak zruš element a vráť globálne podvrdzovátko do pôvodnej polohy
  if($("cmbcVisibleTo_" + id).value == $("cmbVisibleTo_" + id).value)
  {
    $("idContainer").removeChild($("cmbxVisibleTo_" + id));
  
    $("atRight").appear({duration: 0.3});
    $("atLeft").fade({duration: 0.3});
  }
  else //ak je to inak, tak pridaj element a nastav lokálne potvrdzovátko
  {
    if($("cmbxVisibleTo_" + id))
    {
      $("cmbxVisibleTo_" + id).value = $("cmbVisibleTo_" + id).value;
    
      $("atLeft").appear({duration: 0.3});
      $("atRight").fade({duration: 0.3});
    }
    else
    {
      tmp = document.createElement("input");
      tmp.setAttribute("name", "cmbxVisibleTo_" + id);
      tmp.setAttribute("id", "cmbxVisibleTo_" + id);
      tmp.setAttribute("type", "hidden");
      tmp.value = $("cmbVisibleTo_" + id).value;
      
      $("idContainer").appendChild(tmp);
    
      $("atLeft").appear({duration: 0.3});
      $("atRight").fade({duration: 0.3});
    }
  }
}

function clickSendWave(id, cathegory, owner)
{
  new Ajax.Request("ax/axSendWave.php?id=" + id + "&cat=" + cathegory + "&to=" + owner, {
    onSuccess: function(data){
      changeIcon(cathegory + "Edit" + id + "Wave", "icoWave_active");
    }
  });
}