/* -------------- ogolne -------------- */
var Requescik = null;
var AjaxDane = new Array();
if(navigator.userAgent.indexOf("Safari")> 0){isSafari=true;isMoz=false;isIE=false;}
else if(navigator.product=="Gecko"){isSafari=false;isMoz=true;isIE=false;}
else{isSafari=false;isMoz=false;isIE=true;}
/* -------------- ogolne -------------- */
/* ---------------- ajax -------------- */
function PrzelecDOM(obiekt) {
   var tmpobiekt;
   if(obiekt.nodeType == 3) {
      tmpobiekt = document.createTextNode(obiekt.nodeValue);
   }
   else {
      tmpobiekt = document.createElement(obiekt.tagName);
   }
   if (isIE) {
      var atrybuty = obiekt.attributes;
      if (atrybuty && atrybuty.length > 0) {
         for (var a = 0; a < obiekt.attributes.length; a++) {
           tmpobiekt.setAttribute(obiekt.attributes[a].name, obiekt.attributes[a].value);
         }
      }
   }
   else {
      //jak obiekt ma argumenty to je dodaje do tmpobiekt
      if (obiekt.hasAttributes()) {
         var atrybuty = obiekt.attributes;
         for (var a = 0; a < atrybuty.length; a++) {
           tmpobiekt.setAttribute(atrybuty[a].name, atrybuty[a].value);
         }
      }
   }
   if (obiekt.hasChildNodes() > 0) {
      var dzieci = obiekt.childNodes;
      for (var a = 0; a < dzieci.length; a++) {
         tmpobiekt.appendChild(PrzelecDOM(dzieci[a]));
      }
   }
   return tmpobiekt;
}
function loadXMLDoc(url) {
  Requescik = null;
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    req.onreadystatechange = processReqChange;
    req.open("GET", url, true);
    req.send(null);
  }
  else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req) {
      req.onreadystatechange = processReqChange;
      req.open("GET", url, true);
      req.send();
    }
  }
}
function processReqChange() {
  if (req.readyState == 4) {
    if (req.status == 200) {
      response = req.responseXML.documentElement;
      if (response.getElementsByTagName('metoda').length == 0) { return false; }
      metoda = response.getElementsByTagName('metoda')[0].firstChild.data;
      eval(metoda + '(response)');
      return true;
    }
    else {
      return false;
    }
  }
}
function Uzupelnij(element,lista,adres,minliczzn,czas,e) {
  //weryfikacja
  if (!element) {
     return false;
  }
  var okno = document.getElementById(lista);
  if (!okno) {
     return false; //nie ma okna ??????
  }
  if (!adres) { return false; }
  if (!minliczzn) { var minliczzn = 2; }
  if (czas < 100) { var czas = 100; }
  if (!e)  { var e = window.event; }
  if (e.keyCode) { var klawisz = e.keyCode; }
  else if (e.which) { var klawisz = e.which; }
  //kod
  if((klawisz == 38) && (okno.style.display == 'block')) { //strzalka gora
    var lista = okno.getElementsByTagName('p');
    if (Wybrany == 0) {
      lista[Wybrany].className='';
      Wybrany = lista.length-1;
      lista[Wybrany].className='podswietlone';
    }
    else if (Wybrany > 0) {
      lista[Wybrany].className='';
      Wybrany--;
      lista[Wybrany].className='podswietlone';
    }
    return false;
  }
  else if ((klawisz == 40) && (okno.style.display == 'block')){ //strzalka dol
    var lista = okno.getElementsByTagName('p');
    if (Wybrany == lista.length-1) {
      lista[Wybrany].className='';
      Wybrany = 0;
      lista[Wybrany].className='podswietlone';
    }
    else if (Wybrany < lista.length-1) {
      lista[Wybrany].className='';
      Wybrany++;
      lista[Wybrany].className='podswietlone';
    }
    return false;
  }
  else if ((klawisz == 9) && (okno.style.display == 'block')) { //   tab
    okno.style.display='none';
    if (isIE) { e.returnValue = false; }
    else { e.preventDefault(); }
    element.focus();
    return false;
  }
  else if (klawisz == 13)  { //  enter 
    if (okno.style.display == 'block') {
      //wypelniamy i zamykamy okienko
      element.value=okno.getElementsByTagName('p')[Wybrany].innerHTML;
      okno.style.display='none';
    }
    if (isIE) { e.returnValue = false; }
    else { e.preventDefault(); }
    return false;
  }
  else if (klawisz == 37 || klawisz == 39) { //strzalki lewa i prawa
    return false;
  }
  else {
    //udajemy ze nam sie kod udal
    if(Requescik != null) {
        window.clearTimeout(Requescik);
    }
    Requescik = window.setTimeout(function () { UzupelnijPobierz(element,lista,adres,minliczzn); }, czas);
  }
}
function UzupelnijPobierz(element,lista,adres,minliczzn) {
  var ciag = element.value;
  var okno = document.getElementById(lista);
  if (ciag.length >= minliczzn) {
    //udajemy ze nam sie kod udal
    okno.style.display='none';
    element.onblur = function() {
      if (okno.style.display == 'block') {
        window.setTimeout(function () { okno.style.display='none'; }, 150);
      }
    }
    loadXMLDoc(adres + encodeURIComponent(ciag) + '&lista=' + lista + '&eldocelowy=' + element.id + '&Losowe=' + Math.random() * Date.parse(new Date()));
  }
  else {
    okno.style.display='none';
  }
}
function UzupelnijWyswietl(odpowiedz) {
  if (odpowiedz) {
    var elementy = odpowiedz.getElementsByTagName('nazwa');
    var lista = odpowiedz.getElementsByTagName('lista').item(0).firstChild.data;
    var eldocelowy = odpowiedz.getElementsByTagName('eldocelowy').item(0).firstChild.data;
    var IleSkladnikow = elementy.length;
    if (IleSkladnikow > 0) {
      Wybrany = 0;
      var okno = document.getElementById(lista);
      while(okno.hasChildNodes()) {
        okno.removeChild(okno.lastChild);
      }
      for (var a = 0; a < IleSkladnikow; a++) {
        var paragraf = document.createElement("p");
        var tekst = document.createTextNode(elementy[a].firstChild.data);
        paragraf.appendChild(tekst);
        if (a == 0) { paragraf.className = "podswietlone"; }
        okno.appendChild(paragraf);
        paragraf.onclick = function() {
          document.getElementById(eldocelowy).value = this.innerHTML;
        }
        paragraf.onmouseover = function() {
          var lista = okno.getElementsByTagName('p');
          lista[Wybrany].className='';
          for (var a = 0; a < lista.length; a++) {
            if (lista[a] == this) { this.className='podswietlone'; Wybrany = a; }
          }
        }
      }
      okno.style.display = 'block';
    }
  }
}
function ListaWyboru(element,lista,eldocelowy,adres,minliczzn,czas,e) {
  //weryfikacja
  if (!element) { return false; }
  var okno = document.getElementById(lista);
  if (!okno) { return false; }
  if (!adres) { return false; }
  if (!minliczzn) { var minliczzn = 2; }
  if (czas < 100) { var czas = 100; }
  if (!e)  { var e = window.event; }
  if (e.keyCode) { var klawisz = e.keyCode; }
  else if (e.which) { var klawisz = e.which; }
  //kod
  if((klawisz == 38) && (okno.style.display == 'block')) { //strzalka gora
    var lista = okno.getElementsByTagName('p');
    if (Wybrany == 0) {
      lista[Wybrany].className='';
      Wybrany = lista.length-1;
      lista[Wybrany].className='podswietlone';
    }
    else if (Wybrany > 0) {
      lista[Wybrany].className='';
      Wybrany--;
      lista[Wybrany].className='podswietlone';
    }
    return false;
  }
  else if ((klawisz == 40) && (okno.style.display == 'block')){ //strzalka dol
    var lista = okno.getElementsByTagName('p');
    if (Wybrany == lista.length-1) {
      lista[Wybrany].className='';
      Wybrany = 0;
      lista[Wybrany].className='podswietlone';
    }
    else if (Wybrany < lista.length-1) {
      lista[Wybrany].className='';
      Wybrany++;
      lista[Wybrany].className='podswietlone';
    }
    return false;
  }
  else if ((klawisz == 9) && (okno.style.display == 'block')) { //   tab
    okno.style.display='none';
    if (isIE) { e.returnValue = false; }
    else { e.preventDefault(); }
    element.focus();
    return false;
  }
  else if (klawisz == 13)  { //  enter 
    if (okno.style.display == 'block') {
      //wypelniamy i zamykamy okienko
      ListaWyboruDodaj(document.getElementById(eldocelowy),okno.getElementsByTagName('p')[Wybrany]);
      okno.style.display='none';
    }
    if (isIE) { e.returnValue = false; }
    else { e.preventDefault(); }
    return false;
  }
  else if (klawisz == 37 || klawisz == 39) {
    return false;
  }
  else {
    if(Requescik != null) {
      window.clearTimeout(Requescik);
    }
    Requescik = window.setTimeout(function () { ListaWyboruPobierz(element,lista,eldocelowy,adres,minliczzn); }, czas);
  }
}
function ListaWyboruPobierz(element,lista,eldocelowy,adres,minliczzn) {
  var ciag = element.value;
  var okno = document.getElementById(lista);
  if (ciag.length >= minliczzn) {
    //udajemy ze nam sie kod udal
    element.onblur = function() {
      if (okno.style.display == 'block') {
        window.setTimeout(function () { okno.style.display='none'; }, 150);
      }
    }
    loadXMLDoc(adres + encodeURIComponent(ciag) + '&lista=' + lista + '&eldocelowy=' + eldocelowy + '&Losowe=' + Math.random() * Date.parse(new Date()));
  }
  else {
    okno.style.display='none';
  }
}
function ListaWyboruWyswietl(odpowiedz) {
  if (odpowiedz) {
    AjaxDane = new Array();
    var elementy = odpowiedz.getElementsByTagName('elementy');
    if (elementy.length > 0) {
      Wybrany = 0;
      var lista = odpowiedz.getElementsByTagName('lista').item(0).firstChild.data;
      var eldocelowy = odpowiedz.getElementsByTagName('eldocelowy').item(0).firstChild.data;
      var okno = document.getElementById(lista);
      while(okno.hasChildNodes()) { okno.removeChild(okno.lastChild); }
      for (var a = 0; a < elementy.length; a++) {
        var idelementu = elementy[a].getElementsByTagName('id')[0].firstChild.nodeValue;
        var nazwaelementu = elementy[a].getElementsByTagName('nazwa')[0].firstChild.nodeValue
        AjaxDane[idelementu] = new Array();
        AjaxDane[idelementu]['dane'] = elementy[a].getElementsByTagName('dane')[0].firstChild;
        var paragraf = document.createElement("p");
        var tekst = document.createTextNode(nazwaelementu);
        paragraf.appendChild(tekst);
        paragraf.setAttribute("id", idelementu);
        okno.appendChild(paragraf);
        if (a == 0) { paragraf.className = "podswietlone";  }
        paragraf.onclick = function() {
          ListaWyboruDodaj(document.getElementById(eldocelowy),this);
        }
        paragraf.onmouseover = function() {
          var lista = okno.getElementsByTagName('p');
          lista[Wybrany].className='';
          for (var a = 0; a < lista.length; a++) {
            if (lista[a] == this) { this.className='podswietlone'; Wybrany = a; }
          }
        }
      }
      okno.style.display = 'block';
    }
  }
}
function ListaWyboruDodaj(wybrane,element) {
  elementydodane = wybrane.getElementsByTagName('input');
  if (elementydodane.length > 0) {
     for (var a = 0; a < elementydodane.length; a++) {
       if (elementydodane[a].value == element.id) {
          return 0;
       }
     }
  }
  wybrane.appendChild(PrzelecDOM(AjaxDane[element.id]['dane']));
}
function Wypelnij(element,eldocelowy,nazwaobiektu,adres,minliczzn) {
  if (!document.getElementById(element)) { return false; }
  if (!adres) { return false; }
  if (!minliczzn) { var minliczzn = 1; }
  var nazwa = document.getElementById(element).value;
  if (nazwa.length >= minliczzn) {
     loadXMLDoc(adres + encodeURIComponent(nazwa) + '&nazwaobiektu=' + nazwaobiektu + '&elzrodlowy=' + element + '&eldocelowy=' + eldocelowy + '&Losowe=' + Math.random() * Date.parse(new Date()));
  }
  else {
    return false;
  }
}
function WypelnijDodaj(odpowiedz) {
  if (odpowiedz) {
     var elzrodlowy = odpowiedz.getElementsByTagName('elzrodlowy').item(0).firstChild.data;
     var eldocelowy = odpowiedz.getElementsByTagName('eldocelowy').item(0).firstChild.data;
     var nazwaobiektu = odpowiedz.getElementsByTagName('nazwaobiektu').item(0).firstChild.data;
     var id = odpowiedz.getElementsByTagName('elemid').item(0).firstChild.data;
     var nazwa = odpowiedz.getElementsByTagName('elemnazwa').item(0).firstChild.data;
     if (!elzrodlowy || !eldocelowy || !nazwaobiektu || !id || !nazwa) { return false; }
     //czyscimy inputa
     document.getElementById(elzrodlowy).value = '';
     var rodzic = document.getElementById(eldocelowy);
     var obiekty = rodzic.getElementsByTagName('input');
     if (obiekty.length > 0) {
       for (var a = 0; a < obiekty.length; a++) {
         if (obiekty[a].name == nazwaobiektu && obiekty[a].value == id) { return 0; }
       }
     }
     var wiersz = document.createElement("tr");
     var komorka = document.createElement("td");
     var tekst = document.createTextNode(nazwa);
     komorka.appendChild(tekst);
     var inpucik = document.createElement("input");
     inpucik.setAttribute("type", "hidden"); 
     inpucik.setAttribute("name", nazwaobiektu);
     inpucik.setAttribute("value", id);
     komorka.appendChild(inpucik);
     wiersz.appendChild(komorka);
     var komorka = document.createElement("td");
     var buttonik = document.createElement("button");
     buttonik.appendChild(document.createTextNode('Usun'));
     buttonik.setAttribute("type","button");
     buttonik.onclick = function() {
       rodzic.removeChild(wiersz);
     }
     komorka.appendChild(buttonik);
     wiersz.appendChild(komorka);
     rodzic.appendChild(wiersz);
  }
}
function KodHTML(adres,id) {
  loadXMLDoc(adres + id + '&Losowe=' + Math.random() * Date.parse(new Date()));
}
function KodHTMLWyswietl(odpowiedz) {
  if (odpowiedz) {
     var szerokosc = odpowiedz.getElementsByTagName('szerokosc').item(0).firstChild.data;
     var wysokosc = odpowiedz.getElementsByTagName('wysokosc').item(0).firstChild.data;
     var dane = odpowiedz.getElementsByTagName('dane');
     if (dane.length > 0) {
        var ramka = document.getElementById('RamkaZdjecia');
        if (!ramka) {
          ramka = document.createElement('div');
          ramka.setAttribute('id','RamkaZdjecia');
          ramka.setAttribute('id','RamkaZdjecia');
          document.body.appendChild(ramka);
        }
        else {
          while(ramka.hasChildNodes()){
            ramka.removeChild(ramka.lastChild);
          }
          ramka.style.display = "block";
        }
        ramka.style.position = 'absolute';
        ramka.style.zIndex = 100;
        ramka.style.width = szerokosc + 'px';
        ramka.style.height = wysokosc + 'px';
        ramka.style.left = ((screen.availWidth - szerokosc) / 2) + 'px';
//        ramka.style.top = ((screen.availHeight - wysokosc) / 2) + 'px';
        ramka.style.top = 110 + 'px';
        ramka.appendChild(PrzelecDOM(dane[0]));
     }
  }
}
/* ---------------- ajax -------------- */



