// JavaScript Document

//Pošle a přijme požadavek
//Parametry
// - Kdo - číslo stránky 0 - 10 které vyslalo a přijme požadavek
// - Komu - název souboru, kterému je požadavek zaslán
// - Formu - název formuláře, jehož obsah bude odeslán 
// - Param - parametry, předané Komu
// - Fce - funkce, která bude vykonána po přijetí požadavku  
function PosliPozadavek(Kdo,Komu,Form,Param,Fce)
{
//alert(Kdo+":"+Komu+":"+Form+":"+Param+":"+Fce);
  var IdKdo = Kdo;
  var XMLHttpRequestObjekt=false;
  if(window.XMLHttpRequest)
  {XMLHttpRequestObjekt = new XMLHttpRequest();}
  else if(window.ActiveXObject)
  { XMLHttpRequestObjekt = new ActiveXObject("Microsoft.XMLHTTP"); }

  if(XMLHttpRequestObjekt)
  {
    XMLHttpRequestObjekt.open("POST",Komu,true);
    XMLHttpRequestObjekt.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    XMLHttpRequestObjekt.onreadystatechange=function()
    {
      if(XMLHttpRequestObjekt.readyState==4 &&
         XMLHttpRequestObjekt.status==200)
      {
        var IDCil = "";
        var vstupy = XMLHttpRequestObjekt.responseText.split("!##");
        var vstup;
        var parametry;
        var parametr;
        var infoText = "";
        for(ii=1; ii<vstupy.length;ii++)
        {
          vstup = vstupy[ii].split("!#",2);
          parametry = vstup[0].split(";");
          for(jj=0; jj<parametry.length;jj++)
          {
            parametr=parametry[jj].split("=");
            if(parametr[0]=="napln")
            {
              document.getElementById(parametr[1]).innerHTML=vstup[1];
            }
            if(parametr[0]=="prijemce")
            {
              if(parametr[1]=="zprava") alert(vstup[1]); //vypsání zprávy alert
/*              if(parametr[1]=="okno") {oknoSez[IdKdo].oknoNactiData(vstup[0],vstup[1]);}
              if(parametr[1]=="popup") 
                {pop=document.createElement("DIV");
                 pop.innerHTML=vstup[1];
                 pop.className="popup";
                 kam = document.getElementById("obsah");
                 kam.insertBefore(pop,null);
                 pop.style.display="block";
                } 
*/
              if(parametr[1]=="objekty") 
                {pop=document.getElementById('objekty');
                 pop.innerHTML="<img src='./images/fileclose.png' class='ikozavri' onclick='ZobrazSkryj(\"objekty\");'></div>"+vstup[1];
                 pop.style.display="block";
                } 
              if(parametr[1]=="info") 
                {pop=document.getElementById('info');
                 pop.innerHTML="<img src='./images/fileclose.png' class='ikozavri' onclick='ZobrazSkryj(\"info\");'></div>"+vstup[1];
                 pop.style.display="block";
                } 
              if(parametr[1]=="oddil") OddilZobraz(vstup[1]);
              if(parametr[1]=="odstavec") {OdstavecZobraz(vstup[1]);}
              if(parametr[1]=="polozka") {PolozkaZobraz(vstup[1],true);}
              if(parametr[1]=="aplRozPol") aplRozPolAdd(vstup[1]);
              if(parametr[1]=="proved") {eval(vstup[1]);} //vykoná JS příkaz zaslaný serverem
              if(parametr[1]=="nastaveni") 
              {
                pol=vstup[1].split(";");
                if(pol[0]=="mapaBarMem") mapaBarMemCti(pol[1]);
              } //vykoná JS příkaz zaslaný serverem
/*
              if(parametr[1]=="info") AddInfo(vstup[1]); //Přidá řádek do informačního výpisu
              if(parametr[1]=="proved") {eval(vstup[1]);} //vykoná JS příkaz zaslaný serverem
              if(parametr[1]=="data") NaplnData(IdKdo,parametry,vstup[1]); //Naplní do formuláře data
              if(parametr[1]=="oknozavri") formularZavri(IdKdo); //Zavře aktuální okno
              if(parametr[1]=="kalendar") kalPridejUdalost(IdKdo,vstup[1]); //vypsání údálosti do kalendáře
              if(parametr[1]=="ulozen") Ulozen(IdKdo);
*/  
            }
          }
        }
        if(infoText) { infoID.innerHTML="<ul>"+infoText+"</ul>"; infoID.style.display="block";}
      }
    }
  }
  if(Form)
  {
    var Obj = Form;
    var MinName="";
    for(var ii=0; ii<Obj.length; ii++)
    {

     var puv = Obj[ii].value; 
     var regexp = /&/g
     var hod = puv.replace(regexp,"_amp_");


      if(Obj[ii].type=="text") Param=Param+"&"+Obj[ii].name+"="+hod;
      if(Obj[ii].type=="password") Param=Param+"&"+Obj[ii].name+"="+hod;
      if(Obj[ii].type=="hidden") Param=Param+"&"+Obj[ii].name+"="+hod;
      if(Obj[ii].type=="textarea") Param=Param+"&"+Obj[ii].name+"="+hod;
      if(Obj[ii].type.indexOf("select")>-1) Param=Param+"&"+Obj[ii].name+"="+hod;
      if(Obj[ii].type=="radio") if(Obj[ii].checked) Param=Param+"&"+Obj[ii].name+"="+hod;
      if(Obj[ii].type=="checkbox")
      {
        if(Obj[ii].checked)
        { 
          if(Obj[ii].name==MinName) 
          {
            Param=Param+Obj[ii].value;
          }  
          else
          { 
            Param=Param+"&"+Obj[ii].name+"="+hod;
          }
        }
      }
      MinName = Obj[ii].name;
    }
  }

  XMLHttpRequestObjekt.send(Param);
}

//Naplní odstavec obsahem
//Parametry
// - Kdo - strana která zaslala požadavek a která přijme obsah
// - paraemtry - parametry upřesňující kam a jak zapsat obsah
//     -- id - id odstavec kam je obsah zapsán - Kdo je ingnorováno
//     -- class - odstavec DIV se stejnou třídou kam je obsah zapsán. Při více stejných class je zapsáno do prvního
// - obsah - obsah který je do odstavec zapsán
function NaplnOdstavec(Kdo,parametry,obsah)
{
  var Cil = "";
  var Display = "block";
  for(jj=0; jj<parametry.length;jj++)
  {
    parametr=parametry[jj].split("=");
    if(parametr[0]=="id") //výstup je dán ID objektu
    {
      Cil = document.getElementById(parametr[1]);
    }
    if(parametr[0]=="class") //výstup je dán třídou objektu 
    {
      strana=document.getElementById("Strana"+Kdo);
      strana.style.display="block";
      Cile = strana.getElementsByTagName("DIV");
      for(ii=0; ii<Cile.length; ii++)
      {
        if(Cile[ii].className==parametr[1])
        {
          Cil = Cile[ii];
          break;
        }
      } 
    }
    if(parametr[0]=="display")
    {
      Display = parametr[1];
    } 
  }
  if(Cil)
  {
   Cil.innerHTML = obsah;
   if(!obsah) Display = "none";
   Cil.style.display=Display;
  }
}

function Ulozen(Kdo)
{
  document.getElementById("Strana"+Kdo).className="okno posun";
}

//Do nabídky okna vloží obsah
function NaplnOkno(Kdo,obsah)
{
  var strana=0;
  //Načte seznam všech LI prvků v seznamu nabídek formulářů (oken)
  var fornab = document.getElementById("StranaNab");
  var forodstavec = fornab.getElementsByTagName("LI");
  //Prochází všechny LI prvky
  for(var ii=0; ii<forodstavec.length; ii++)
  {
    //Platné jsou jenom LI prvky s názvem menuFormular
    if(forodstavec[ii].className=="StranaNabOdstavec")
    {
      strana++; //Počítá nalezený LI prvek a pokud je shodný se zavíraným zavře jej
      if(strana==Kdo)
      {
        //Naplní nabídku okna
        forodstavec[ii].innerHTML=obsah;
        return;
      }
    }
  }
}
//Doplní do editačních polí formuláře hodnoty
//Parametry
// - Kdo - strana která zaslala požadavek a která přijme obsah
// - paraemtry - parametry upřesňující kam a jak zapsat obsah
//     -- id - id odstavec kam je obsah zapsán - Kdo je ingnorováno
//     -- class - odstavec DIV se stejnou třídou kam je obsah zapsán. Při více stejných class je zapsáno do prvního
//     -- cisform - pořadové číslo formululáře, výchozí je 0
// - obsah - výčet názvů editačních polí a hodnot ve formátu nazev=hodnota;

function NaplnData(Kdo,parametry,obsah)
{
//Najde odstavec s formulářem
  var Cil = "";
  var CisForm = 0;
  for(jj=0; jj<parametry.length;jj++)
  {
    parametr=parametry[jj].split("=");
    if(parametr[0]=="id") //výstup je dán ID objektu
    {
      Cil = document.getElementById(parametr[1]);
    }
    if(parametr[0]=="class") //výstup je dán třídou objektu 
    {
      strana=document.getElementById("Strana"+Kdo);
      strana.style.display="block";
      Cile = strana.getElementsByTagName("DIV");
      for(ii=0; ii<Cile.length; ii++)
      {
        if(Cile[ii].className==parametr[1])
        {
          Cil = Cile[ii];
          break;
        }
      } 
    }
    if(parametr[0]=="cisform")
    {
      CisForm = parametr[1];
    } 
  }
  //Najde formulář
  var Formular=Cil.getElementsByTagName("FORM")[CisForm];
  //Naplní editační odstavec podle obsahu proměnné data
  var data = obsah.split(";");
  var hod;
  for(ii=0; ii<data.length; ii++)
  {
    hod = data[ii].split("=");
    Formular[hod[0]].value=hod[1];
    if(hod[0]=="UnCis" && Kdo>-1) MemUnCis[Kdo]=hod[1];
  }
}

function Rozhodni(Text)
{
  if(confirm(Text))
  {
    return true;
  } 
  else
  {
    return false;
  }
}


