var _host="www.parkerriver.com";
var _fpath="";
var _path="/";
// Definicja obiektu Cookie.
function MyCookie(name,val,domain,path) {
   this.name=name;
   this.value=val;
   this.domain=domain;
   this.path=path;
   // Domylny okres wanoci cookie wynosi trzy dni.
   var dtsec=new Date();
   dtsec.setSeconds(dtsec.getSeconds()+(60*60*24*3));
   this.expires=dtsec.toGMTString();
   this.toString=function(){
      return this.name+"="+this.value+"; expires="+this.expires+
         "; path="+this.path+"; domain="+this.domain;
   }
}// Koniec definicji obiektu Cookie.
// Ta obsuga zdarze jest wywoywana w trakcie
// pierwszego wczytania strony.
window.onload=function(){
   var b1 = document.getElementById("ckCreate");
   var b2 = document.getElementById("ckView");
   var b3 = document.getElementById("ckSend");
   var _url="";
   if(b1 && b2 && b3){
      b1.onclick=function(){
         // Nowa nazwa/warto Cookie.
         var nm = document.getElementById("ck_nm");
         var v=document.getElementById("ck_val");
         try{
            if(nm && nm.value && v && v.value){
               var cook=new MyCookie(encodeURIComponent(nm.value),
                  v.value,_host,_path);
               // Dodanie cookie do biecego zbioru cookies.
               document.cookie=cook.toString();
               // Wywietlenie uytkownikowi komunikatu.
               showMsg(document.getElementById("msg"),
                  "Utworzenie ciasteczka zakoczyo si powodzeniem.");
            }
         } catch(errv) {
            alert("Przykro nam, ale utworzenie cookie zakoczyo si "+
               "niepowodzeniem z powodu nastpujcego bdu: "+errv.message);
         }

      }
      // Wywietlenie cookie widocznych dla okrelonego wza.
      b2.onclick=function(){
         location.href="http://"+_host+_fpath+"/s/ckreader";
      }
      // Przekazanie do komponentu serwera metod POST wszystkich dostpnych cookies.
      b3.onclick=function(){
         _url="http://"+_host+_fpath+"/s/ckserv";
         httpRequest("POST",_url,true,function(){},
            "allCookies="+encodeURIComponent(document.cookie));
      }
   }
   // Utworzenie pocztkowego cookie w trakcie uruchamiania aplikacji.
   _url="http://"+_host+_fpath+"/s/ckserv";
   httpRequest("GET",_url,true,handleInit);
}
function showMsg(_id,txt){
   if(_id && txt){_id.innerHTML=txt;}
}
// Obsuga odpowiedzi, ktra bdzie uywana przez obiekt XMLHttpRequest. 
// Zobacz [Sposb 03].
function handleInit(){
   try{
      if(request.readyState == 4){
         if(request.status == 200){
            var resp = request.responseXML;
            if(resp != null){
               var outcome=resp.getElementsByTagName("outcome")[0];
               var msg = document.getElementById("msg");
               if(outcome != null){
                  if(outcome.childNodes[0].nodeValue != "success")  {
                     showMsg(msg,
                     "Tworzenie pocztkowego cookie zakoczyo si
                     niepowodzeniem.");
                  }
               }
            }
         } else {
            // Warto waciwoci request.status wynosi 503, 
            // jeeli aplikacja jest niedostpna, oraz 
            // warto 500, jeli aplikacja zawiera bd.
            alert(
               "Wystpi problem z komunikacj midzy obiektem XMLHttpRequest, "+
               "a programem serwera.");
         }
      }// Koniec zewntrznej ptli if.
   } catch (err) {
      alert("Serwer nie jest dostpny "+
         "dla tej aplikacji. Prosz wkrtce sprbowa"+
         " ponownie. \nBd: "+err.message);

   }
}
