var request;
var symbol;   // Zmienna bdzie przechowywa symbol waloru giedowego.
var numberOfShares;

function getStockPrice(sym,shs){
   if(sym && shs){
      symbol=sym;
      numberOfShares=shs;
      var url="http://localhost:8080/parkerriver/s/stocks?symbol="+sym;
      httpRequest("GET",url,true);
   }
}

// Obsuga zdarze dla obiektu XMLHttpRequest.
function handleResponse(){
   if(request.readyState == 4){
      alert(request.status);
      if(request.status == 200){
         /* Sprawdzenie, czy warto zwrotna rzeczywicie jest liczb. 
         Jeeli tak jest, to nastpuje pomnoenie przez liczb walorw giedowych
         i wywietlenie wyniku. */
         var stockPrice = request.responseText;
         try{
            if(isNaN(stockPrice)) { throw new Error(
               "Zwrcona cena nie jest poprawn liczb.");}
            if(isNaN(numberOfShares)) { throw new Error(
               "Liczba walorw nie jest poprawn liczb.");}
            var info = "Cakowita warto walorw: "+ calcTotal(stockPrice);
            displayMsg(document.getElementById("msgDisplay"),info,"black");
            document.getElementById("stPrice").style.fontSize="0.9em";
            document.getElementById("stPrice").innerHTML ="cena: "+stockPrice;
         } catch (err) {
            displayMsg(document.getElementById("msgDisplay"),
               "Wystpi bd: "+
               err.message,"red");
         }
      } else {
         alert(
            "Wystpi problem z komunikacj midzy obiektem XMLHttpRequest, "+
            "a programem serwera.");
      }
   }// Koniec zewntrznej ptli if.
}

/* Zobacz sposoby 01 i 02, aby przypomnie sobie przykady kodu powizanego
z funkcj initReq(). Zostay one tutaj pominite w celu zachowania zwizoci kodu. */

function calcTotal(price){
   return stripExtraNumbers(numberOfShares * price);
}

/* Usuwamy wszystkie znaki wykraczajce poza zakres czterech znakw po przecinku,
jak ma to miejsce na przykad w 12,3454678. */
function stripExtraNumbers(num) {
   // Sprawdzenie, czy liczby s poprawne,
   // zakadamy, e caa liczba jest poprawna.
   var n2 = num.toString();
   if(n2.indexOf(".") == -1)  { return num; }
   // Jeeli liczba posiada cyfry po przecinku dziesitnym,
   // wwczas zmniejszamy liczb tych cyfr do czterech.
   // Uywamy parseFloat, jeeli metodzie zostay przekazane cigi tekstowe.
   if(typeof num == "string") {
      num = parseFloat(num).toFixed(4);
   } else {
      num = num.toFixed(4);
   }
   // Usuwamy wszystkie dodatkowe zera.
   return parseFloat(num.toString().replace(/0*$/,""));
}

function displayMsg(div,bdyText,txtColor){
   // Sprowadzamy do stanu wyjciowego zawarto DIV.
   div.innerHTML="";
   div.style.backgroundColor="yellow";
   div.style.color=txtColor
   div.innerHTML=bdyText;
}
