function lightBox(jazyk, nazevObjektu, userAgentString, root_webu) { //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 = 540; //px
  own.ODSAZENI_SHORA = 10; //px
  own.MEZ_ANIMACE = 500; //milisekundy - delka animacniho efektu
  own.ROOT_WEBU = root_webu; //kvuli novym adresam
  //globalni promenne
  own.nazevObjektu = nazevObjektu;
  own.jazyk = jazyk;
  own.idDetail = 0;
  own.fotografie = "";
  own.vyska = 0; //pocatecni nastaveni
  own.startCas = 0;
  own.otevrenoPoprve = true; //systemovejsi nez koukat, jestli se rozmer rovna nule
  
/* -------------------------------------------------------------------------------------------------------- */
  own.vratPozici = function (zvetsovat) {
    var aktualniCas = new Date();
    var rozdil = aktualniCas.getTime() - own.startCas.getTime();
    var procenta = Math.round(rozdil / (own.MEZ_ANIMACE / 100));
    if (zvetsovat)
      return (procenta > 100 ? 100 : procenta);
    else
      return ((100 - procenta) < 0 ? 0 : (100 - procenta));
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.prolnoutPrvek = function (rozsvecet, prvek, pokracovani) {
    var viditelnost = own.vratPozici(rozsvecet);
    if (rozsvecet)
      document.getElementById(prvek).style.visibility = 'visible';
    else
      if(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((rozsvecet && viditelnost < 100) || (!rozsvecet && viditelnost > 0))
      window.setTimeout(own.nazevObjektu+".prolnoutPrvek("+rozsvecet+", '"+prvek+"' "+", '"+pokracovani+"')", own.PRODLEVA);
    else //dosazeno koncovych hodnot
      window.setTimeout(own.nazevObjektu+"."+pokracovani, 1);
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.animujSbaleni = function() { //animace sbalovani
    var procenta = own.vratPozici(false);
    own.vyska = (own.VYSKA_BOXU / 100) * procenta;
    document.getElementById("obalTelaDetailuGalerie").style.height = own.vyska + "px";
    if(procenta > 0) //jeste jsme nedosahli koncovych hodnot
      window.setTimeout(own.nazevObjektu+".animujSbaleni()", own.PRODLEVA);
    else //dosazeno koncovych hodnot
      window.setTimeout(own.nazevObjektu+".skrytDetailGalerie('C')", 1);
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.animujRozbaleni = function() {
    var procenta = own.vratPozici(true);
    own.vyska = (own.VYSKA_BOXU / 100) * procenta;
    document.getElementById("obalTelaDetailuGalerie").style.height = own.vyska + "px";
    if(procenta < 100) //jeste jsme nedosahli koncovych hodnot
      window.setTimeout(own.nazevObjektu+".animujRozbaleni()", own.PRODLEVA);
    else //dosazeno koncovych hodnot
      own.rozbalLightBox("B");
  }
/* -------------------------------------------------------------------------------------------------------- */
  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.prolnoutPrvek(true, prvek, "rozsvitFotku(\""+prvek+"\", \"B\")");
    }
    if (sekce == 'B') {
      return true;
    }
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.zhasniFotku = function(prvek, sekce) {
    if (sekce == 'A') {
      own.startCas = new Date();
      own.prolnoutPrvek(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', own.ROOT_WEBU+'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_popisOdstavec").innerHTML = popis;
      if(idPredchozi == 0)
        document.getElementById("detailGalerie_tlacitkoLeve").innerHTML = "";
      else
        document.getElementById("detailGalerie_tlacitkoLeve").innerHTML = "<a href='javascript:"+own.nazevObjektu+".zobrazDetailGalerie("+idPredchozi+");'>předchozí</a>";
      if(idDalsi == 0)
        document.getElementById("detailGalerie_tlacitkoPrave").innerHTML = "";
      else
        document.getElementById("detailGalerie_tlacitkoPrave").innerHTML = "<a href='javascript:"+own.nazevObjektu+".zobrazDetailGalerie("+idDalsi+");'>další</a>";
        
      document.getElementById("fotografie_detail").src = own.fotografie;
      document.getElementById("fotografie_detail").alt = popis.replace(/&nbsp;/, '');
      document.getElementById("fotografie_detail").title = popis.replace(/&nbsp;/, '');
      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 = "10000px";
      document.getElementById("obalTelaDetailuGalerie").style.height = "0px";
      document.getElementById("obalTelaDetailuGalerie").style.visibility = 'visible';
      document.getElementById("obalTelaDetailuGalerie").style.marginTop = (document.documentElement.scrollTop+own.ODSAZENI_SHORA)+"px";
      document.getElementById("detailGalerie_tlacitkoZavrit").innerHTML = '<a href="javascript:'+own.nazevObjektu+'.skrytDetailGalerie(\'A\')">zavřít</a>';
      own.startCas = new Date();
      own.otevrenoPoprve = false;
      own.animujRozbaleni();
    }
    if (sekce == 'B') {
      //vlozeni pozadi
      if (!((window.navigator.appName == "Microsoft Internet Explorer") && (window.navigator.appVersion.search(/MSIE 6/) != -1))) //identifikace IE 6
        document.getElementById("detailGalerie").style.backgroundImage = "url("+own.ROOT_WEBU+"desimg/detailGalerie_pozadi.png)";
      //zobrazeni prvku
      document.getElementById("detailGalerie_tabulka").style.visibility = 'visible';
      document.getElementById("detailGalerie_tlacitkoLeve").style.visibility = 'visible';
      document.getElementById("detailGalerie_tlacitkoPrave").style.visibility = 'visible';
      document.getElementById("detailGalerie_popisOdstavec").style.visibility = 'visible';
      own.zobrazDetail(null);
    }
  }
/* -------------------------------------------------------------------------------------------------------- */
  own.skrytDetailGalerie = function(sekce) {
    if (sekce == 'A') {
      own.startCas = new Date();
      own.skrytDetailGalerie("B");
      //own.prolnoutPrvek(false, 'detailGalerie_ovladaciPanel', 'skrytDetailGalerie(\"B\")'); //ponechat - nekde neni panel
    }
    if (sekce == 'B') {
      //skryti prvku
      document.getElementById("detailGalerie_tabulka").style.visibility = 'hidden';
      document.getElementById("fotografie_detail").src = "";
      document.getElementById("fotografie_detail").style.visibility = 'hidden';
      document.getElementById("detailGalerie_tlacitkoLeve").style.visibility = 'hidden';
      document.getElementById("detailGalerie_tlacitkoPrave").style.visibility = 'hidden';
      document.getElementById("detailGalerie_popisOdstavec").style.visibility = 'hidden';
      //odstraneni pozadi
      document.getElementById("detailGalerie").style.backgroundImage = "none";
      //spusteni animace sbaleni
      own.animujSbaleni();
    }
    if (sekce == 'C') {
      //skryti animacnich prvku
      document.getElementById("detailGalerie").style.height = "0px";
      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');
    }
  }
/* -------------------------------------------------------------------------------------------------------- */
}

