function lightBox(jazyk, nazevObjektu, userAgentString) { //definice objektu
  
  var own = this; //hodnota this se pry muze menit behem skriptu, takze bezpecnost
  
  //konstanty
  own.VYRAZY_PROHLIZECE = new Array(/opera/, /msie/, /firefox/, /chrome/);
  own.PROHLIZEC = userAgentString.toLowerCase();
  own.PRODLEVA = 20; //milisekund pro animaci - interval mezi kroky animace
  own.VYSKA_BOXU_IE = 535;
  own.VYSKA_BOXU = 520;
  own.KROK = 20; //px
  own.POCATECNI_VYSKA = 0; //px
  own.MEZ_ANIMACE = 2; //sekundy, vzdy cela cisla, mez slouzi pro pomalejsi PC, po jejim dosahnuti se krok zvetsuje
  own.KROK_PROLNUTI = 5; //% viditelnosti
  //globalni promenne
  own.krok = own.KROK; //px pro animaci
  own.nazevObjektu = nazevObjektu;
  own.jazyk = jazyk;
  own.idDetail = 0;
  own.fotografie = "";
  own.vyska = own.POCATECNI_VYSKA; //pocatecni nastaveni
  own.startCas = 0;
  own.otevrenoPoprve = true; //systemovejsi nez koukat, jestli se rozmer rovna nule
  own.pozadovanaVyskaOkna = 0;
  
/* -------------------------------------------------------------------------------------------------------- */
  own.upravKrok = function(krok) { //v pripade pomaleho pocitace zvetsuje krok, aby urychlila animaci
    var aktualniCas = new Date();
    var rozdil = aktualniCas.getSeconds() - own.startCas.getSeconds();
    if(rozdil >= own.MEZ_ANIMACE)
      krok = krok * 2;
    return krok;
  } 
/* -------------------------------------------------------------------------------------------------------- */
  own.prolnoutPrvek = function (viditelnost, rozsvecet, prvek, pokracovani) {
    if (rozsvecet) {
      document.getElementById(prvek).style.visibility = 'visible';
      viditelnost += own.krok;
      if(viditelnost >= 100)
        viditelnost = 100;
    }
    else {
      viditelnost -= own.krok;
      if(viditelnost <= 0) {
        viditelnost = 0;
        document.getElementById(prvek).style.visibility = 'hidden';
      }
    }
    if(window.navigator.appName == "Microsoft Internet Explorer") 
      document.getElementById(prvek).style.filter = "alpha(opacity="+viditelnost+")";
    else
      document.getElementById(prvek).style.opacity = (viditelnost / 100);
    if(viditelnost != 100 && viditelnost != 0) {
      own.krok = own.upravKrok(own.krok);
      window.setTimeout(own.nazevObjektu+".prolnoutPrvek("+viditelnost+", "+rozsvecet+", '"+prvek+"' "+", '"+pokracovani+"')", own.PRODLEVA);
    }
    else //dosazeno koncovych hodnot
      window.setTimeout(own.nazevObjektu+"."+pokracovani, 1);
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.animujSbaleni = function() { //animace sbalovani
    if(own.vyska == own.pozadovanaVyskaOkna) {
    }
    if(own.vyska > own.krok) {
      own.vyska -= own.krok;
    }
    else
      own.vyska = own.POCATECNI_VYSKA;
    document.getElementById("obalTelaDetailuGalerie").style.height = own.vyska + "px";
    if(own.vyska > own.POCATECNI_VYSKA) { //jeste jsme nedosahli koncovych hodnot
      own.krok = own.upravKrok(own.krok);
      window.setTimeout(own.nazevObjektu+".animujSbaleni()", own.PRODLEVA);
    }
    else //dosazeno koncovych hodnot
      window.setTimeout(own.nazevObjektu+".skrytDetailGalerie('C')", 1);
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.animujRozbaleni = function() {
      if((Math.abs(own.vyska-own.pozadovanaVyskaOkna) > own.krok) && (own.vyska < own.pozadovanaVyskaOkna))
        own.vyska += own.krok;
      else
        own.vyska = own.pozadovanaVyskaOkna;
      document.getElementById("obalTelaDetailuGalerie").style.height = own.vyska + "px";
      if(own.vyska < own.pozadovanaVyskaOkna) { //jeste jsme nedosahli koncovych hodnot
        own.krok = own.upravKrok(own.krok);
        window.setTimeout(own.nazevObjektu+".animujRozbaleni()", own.PRODLEVA);
      }
      else { //dosazeno koncovych hodnot
        own.krok = own.KROK_PROLNUTI;
        window.setTimeout(own.nazevObjektu+".prolnoutPrvek(0, "+true+", 'detailGalerie_ovladaciPanel', 'rozbalLightBox(\"B\")')", 1);
      }
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.ajax_sendRequest = function(obsluha, metoda, url) { //vytvori spojeni a spusti fci pro cteni XML
    var xmlHttp = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false)); 
    if (!xmlHttp) {
      return false;
    }  
    xmlHttp.open(metoda, url); //otevře spojení
    xmlHttp.onreadystatechange = function() { 
      obsluha(xmlHttp); 
    };  
    xmlHttp.send(''); //odešle požadavek na server
    return true; 
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.rozsvitFotku = function(prvek, sekce) {
    if (sekce == 'A') {
      own.startCas = new Date();
      own.krok = own.KROK_PROLNUTI;
      own.prolnoutPrvek(0, true, prvek, "rozsvitFotku(\""+prvek+"\", \"B\")");
    }
    if (sekce == 'B') {
      return true;
    }
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.zhasniFotku = function(prvek, sekce) {
    if (sekce == 'A') {
      own.startCas = new Date();
      own.krok = own.KROK_PROLNUTI;
      own.prolnoutPrvek(100, false, prvek, "zhasniFotku(\""+prvek+"\", \"B\")");
    }
    if (sekce == 'B') {
      own.zobrazDetail(null);
    }
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.zobrazDetail = function(xmlHttp) { //nacte data a zobrazi je vcetne fotky
    if (xmlHttp == null) {
      own.ajax_sendRequest(own.zobrazDetail, 'GET', 'ajax_vratData.php?idDetail='+own.idDetail+'&jazyk='+own.jazyk+'&zdroj='+own.nazevObjektu+'&rnd='+Math.random());
    }
    else
    if (xmlHttp.readyState == 4) { // 4 znamená požadavek dokončen
      //alert(xmlHttp.responseText);
      own.fotografie = unescape(xmlHttp.responseXML.getElementsByTagName('fotografie')[0].firstChild.data);
      var popis = xmlHttp.responseXML.getElementsByTagName('nadpis')[0].firstChild.data;
      var idPredchozi = xmlHttp.responseXML.getElementsByTagName('idPredchozi')[0].firstChild.data;
      var idDalsi = xmlHttp.responseXML.getElementsByTagName('idDalsi')[0].firstChild.data;
      document.getElementById("detailGalerie_popis_odstavec").innerHTML = popis;
      if(idPredchozi == 0)
        document.getElementById("detailGalerie_tlacitkoLeve").innerHTML = "";
      else
        document.getElementById("detailGalerie_tlacitkoLeve").innerHTML = "<a href='javascript:"+own.nazevObjektu+".zobrazDetailGalerie("+idPredchozi+");'>&lt;&lt;</a>";
      if(idDalsi == 0)
        document.getElementById("detailGalerie_tlacitkoPrave").innerHTML = "";
      else
        document.getElementById("detailGalerie_tlacitkoPrave").innerHTML = "<a href='javascript:"+own.nazevObjektu+".zobrazDetailGalerie("+idDalsi+");'>&gt;&gt;</a>";
        
      document.getElementById("fotografie_detail").src = own.fotografie;
      document.getElementById("fotografie_detail").onload = function() {own.rozsvitFotku('fotografie_detail', 'A')};
    }
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.rozbalLightBox = function(sekce) {
    if (sekce == 'A') {
      document.getElementById("detailGalerie").style.visibility = 'visible';
      document.getElementById("detailGalerie").style.width = document.body.clientWidth + "px";
      document.getElementById("detailGalerie").style.height = document.body.clientHeight + "px";
      document.getElementById("obalTelaDetailuGalerie").style.height = "0px";
      document.getElementById("obalTelaDetailuGalerie").style.visibility = 'visible';
      //vyska podle prohlizece - top: -18px; u tabulky
      if(window.navigator.appName == "Microsoft Internet Explorer")
        own.pozadovanaVyskaOkna = own.VYSKA_BOXU_IE;
      else
        own.pozadovanaVyskaOkna = own.VYSKA_BOXU;
      document.getElementById("obalTelaDetailuGalerie").style.marginTop = (document.documentElement.scrollTop+10)+"px";
      document.getElementById("detailGalerie_tlacitkoZavrit").innerHTML = '<div><a href="javascript:'+own.nazevObjektu+'.skrytDetailGalerie(\'A\')">ZAVŘÍT X</a></div>';
      //nastaveni pruhlednosti, "zobrazeni" prvku, start prolnuti
      if(window.navigator.appName == "Microsoft Internet Explorer") 
        document.getElementById("detailGalerie_ovladaciPanel").style.filter = "alpha(opacity=0)";
      else
        document.getElementById("detailGalerie_ovladaciPanel").style.opacity = 0;
      own.startCas = new Date();
      own.krok = own.KROK;
      own.otevrenoPoprve = false;
      own.animujRozbaleni('A');
    }
    if (sekce == 'B') {
      //vlozeni pozadi
      if(window.navigator.appName != "Microsoft Internet Explorer")
        document.getElementById("detailGalerie").style.backgroundImage = "url(desimg/detailGalerie_pozadi.png)";
      //zobrazeni prvku
      document.getElementById("teloDetailuGalerie").style.visibility = 'visible';
      document.getElementById("detailGalerie_tabulka").style.visibility = 'visible';
      document.getElementById("detailGalerie_ovladaciPanel").style.visibility = 'visible';
      document.getElementById("detailGalerie_tlacitkoLeve").style.visibility = 'visible';
      document.getElementById("detailGalerie_tlacitkoPrave").style.visibility = 'visible';
      document.getElementById("detailGalerie_popis").style.visibility = 'visible';
      own.zobrazDetail(null);
    }
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.skrytDetailGalerie = function(sekce) {
    if (sekce == 'A') {
      own.startCas = new Date();
      own.prolnoutPrvek(100, false, 'detailGalerie_ovladaciPanel', 'skrytDetailGalerie(\"B\")');
    }
    if (sekce == 'B') {
      //skryti prvku
      document.getElementById("teloDetailuGalerie").style.visibility = 'hidden';
      document.getElementById("detailGalerie_tabulka").style.visibility = 'hidden';
      document.getElementById("fotografie_detail").src = "";
      document.getElementById("fotografie_detail").style.visibility = 'hidden';
      document.getElementById("detailGalerie_ovladaciPanel").style.visibility = 'hidden';
      document.getElementById("detailGalerie_tlacitkoLeve").style.visibility = 'hidden';
      document.getElementById("detailGalerie_tlacitkoPrave").style.visibility = 'hidden';
      document.getElementById("detailGalerie_popis").style.visibility = 'hidden';
      //odstraneni pozadi
      document.getElementById("detailGalerie").style.backgroundImage = "none";
      //spusteni animace sbaleni
      own.krok = own.KROK;
      own.animujSbaleni();
    }
    if (sekce == 'C') {
      //skryti animacnich prvku
      document.getElementById("detailGalerie").style.visibility = 'hidden';
      document.getElementById("obalTelaDetailuGalerie").style.visibility = 'hidden';
      own.otevrenoPoprve = true;
    }
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.zobrazDetailGalerie = function(idDetail) { //hlavni fce volana zvenku
    own.idDetail = idDetail;
    //kontrola kompatibility prohlizece
    var povolenyProhlizec = false;
    for (i = 0; i < own.VYRAZY_PROHLIZECE.length; i++) {
      if (own.PROHLIZEC.search(own.VYRAZY_PROHLIZECE[i]) != -1) {
        povolenyProhlizec = true;
        break;
      }        
    }
    if (!povolenyProhlizec)
      return true;
    if (own.otevrenoPoprve) {
      own.rozbalLightBox('A');    
      return false;
    }
    else {
      own.zhasniFotku('fotografie_detail', 'A');
    }
  }
/* -------------------------------------------------------------------------------------------------------- */
}

