

// Zmienna "suma" służy do wyświetlania wartości zamówienia
suma = 0;

// Kreator listy (tablicy) bez elementów
function Lista_pusta()
{
  this.wielkosc = 0;
  return this;
}

// Utworzenie pustej listy (lub inaczej: tablicy o rozmiarze 0)
Lista_Informacji = new Lista_pusta();

// Kreator listy (tablicy) o podanym rozmiarze z pustymi elementami
function Tablica_nowa(rozmiar)
{
  this.wielkosc = rozmiar;
  for ( i=1; i<=rozmiar; i++) { this[i] = null };
}

// Kreator rekordu opisującego pozycję zamówienia; "Dokladnosc" oznacza dokladność zamawianej ilości, np. 0.1 lub 0.01
function rekord(Nazwa , Ilosc, Cena, Dokladnosc)
{
  this.nazwa = Nazwa;
  this.ilosc = Ilosc;
  this.cena = Cena;
  this.dokladnosc = Dokladnosc;
  return this;
}

// Bardzo pokrętna i "empiryczna" ;-) funkcja zaokrąglająca.
// Na razie nikt nie narzekał na jej złe działanie na różnych przegłądarkach.
// Proste funkcje "podziel/zaokrąglaj/pomnóż" z powodu różnic w interpretacji JavaScript zawodzą
function zaokr( Liczba, Dokladnosc)
{
  if ( Dokladnosc < 0.0001 ) { Dokladnosc = 0.0001 }; // Ograniczenie dokładnoci
  var Liczba_str = "" + Math.round(Liczba / Dokladnosc) * Dokladnosc;
  var Liczba_len = Liczba_str.length; // Ustalenie długości łańcucha znakowego
  var poz = Math.log(1/Dokladnosc)/Math.log(10); // Ustalenie pozycji znaku dziesiętnego
  if (Liczba_str.indexOf(".")>-1 && Dokladnosc < 1)
  {  var Calk=Liczba_str.substring(0,Liczba_str.indexOf("."));
     var Ulamk=Liczba_str.substring(Liczba_str.indexOf(".")+1,Liczba_str.indexOf(".")+1+poz);
     return parseFloat(""+Calk+"."+Ulamk);
  }
  else
  {
    return parseInt(Liczba_str);
  }
}

// Funkcja zamieniająca liczbę na łańcuch w postaci "#0.00 zł". Zawsze uzupełnia do dwóch miejsc po znaku dziesiętnym.
function waluta_scr(Liczba)
{
  var Waluta = Math.round(Liczba*100);
  if (Waluta >=10)
  {
    var Waluta_str = "" + Waluta;
    var Waluta_len = Waluta_str.length;
  }
  else
  {
    var Waluta_str = "0" + Waluta;
    var Waluta_len = Waluta_str.length;
  }
  Waluta_str = Waluta_str.substring(0, Waluta_len - 2) + "," + Waluta_str.substring(Waluta_len - 2, Waluta_len);
  if (Liczba < 1) {Waluta_str = "0"+Waluta_str};
  return Waluta_str;
}

function Analizuj(info)       // Tutaj zamieniamy "," na ".".
{
  var p_temp = ""+info;
  var p1_temp = null;
  var p2_temp = null;
  if (p_temp.indexOf(".")>-1)
  {  var p1_temp=p_temp.substring(0,p_temp.indexOf("."));
     var p2_temp=p_temp.substring(p_temp.indexOf(".")+1);
     p_temp=p1_temp+"."+p2_temp;
  };
  p_temp = parseFloat(p_temp);
  if (isNaN(p_temp)) {p_temp = 0};
  return p_temp;
}

// Uzupełnia listę o nową pozycję zamówienia
function dodaj_element(Lista, nazwa, ilosc, cena, dokladnosc)
{
  for ( i=1 ; i<= Lista.wielkosc; i++) // Jeżeli istnieje już pozycja o danej nazwie, powiększana jest tylko ilość
  {
    if (Lista[i].nazwa == nazwa)
    {
      if (alert("Ta pozycja została już dodana"))

//      if (alert("Tą pozycje lub pozycje z tego dzialu już dodawałeś ! \nJesli chcesz wybrac inna pozycje z tego dzialu \n wejdz w szczegoly kalkulacji i usun ta, ktora dodales wczesniej"))


      {
          Lista[i].ilosc += ilosc;
      };
      return(Lista);
    };
  }; 
  wlk = ++Lista.wielkosc; //Jeśli nie, to powiększamy listę
  Lista[wlk] = new rekord( nazwa, ilosc, cena, dokladnosc); // dodając na końcu kolejny rekord z pozycją zamówienia
  return Lista;
}

// Usuwanie z listy wybranego elementu
function usun_element(Lista, numer)
{
  if (Lista.wielkosc > 0)
  {
    Lista_mala = new Tablica_nowa(Lista.wielkosc - 1);
    for ( i = 1; i <= Lista.wielkosc - 1; i++) 
    { 
      if ( i < numer )
      {  Lista_mala[i] = Lista[i]  }
      else
      {  Lista_mala[i] = Lista[i+1]  }
    };
    return Lista_mala;
  };
}

// Filtrowanie listy tak, aby pozotały rekordy tylko z dodatnia ilością
function dodatnie(Lista)
{
  licznik = 0;
  for (i=1; i<=Lista.wielkosc; i++)
  {
    if (Lista[i].ilosc <= 0) { licznik++ }
  };
  Lista_dodatnie = new Tablica_nowa(Lista.wielkosc - licznik);
  licznik = 0;
  for (i=1; i<=Lista.wielkosc; i++)
  {
    if (Lista[i].ilosc > 0)
    {
      Lista_dodatnie[++licznik] = new rekord(Lista[i].nazwa, Lista[i].ilosc, Lista[i].cena, Lista[i].dokladnosc)
    }
  };
  return Lista_dodatnie;
}



function dodaj_bez_pytania(nazwa, cena, ilosc, dokladnosc)    // dodawanie nowej pozycji
{
  Lista_Informacji = dodaj_element(Lista_Informacji, nazwa, zaokr(Analizuj(ilosc), Analizuj(dokladnosc)), Math.abs(Analizuj(cena)),  Analizuj(dokladnosc)); 
  Lista_Informacji = dodatnie(Lista_Informacji); 
  pokaz_krotkie_info();
}

function usun_zam()              // usunięcia wszystkich pozycji z zamówienia,
{
  Lista_Informacji = new Lista_pusta();
  // pokaz();
}






function usun(numer)      // usunięcia jednej pozycji z zamówienia.
{
  Lista_Informacji = usun_element(Lista_Informacji, numer);
  pokaz();
}

function pokaz()     // Funkcja przedstawiającą w ramce "Towar" obecny stan zamówienia
{
  parent.Towar.document.open();
  parent.Towar.document.write('<HTML><HEAD>');
  parent.Towar.document.write('<META HTTP-EQUIV=Content-Type CONTENT=text/html; charset=ISO-8859-2>');
  parent.Towar.document.write('<META HTTP-EQUIV="Content-Language" CONTENT="pl">');
  parent.Towar.document.write('<link rel="stylesheet" type="text/css" href="../includes/styl_dom.css">');
  parent.Towar.document.write('</HEAD><body topmargin="0" leftmargin="0">');
  if (Lista_Informacji.wielkosc >= 1)
  {

  parent.Towar.document.write('<table border=0 cellpadding="0" cellspacing="0" width="760" align="center"><tr><td valign="top"><table width="760" cellpadding="0" cellspacing="0" border="0" align="center"><tr><td width="152" valign="top">');


  parent.Towar.document.write('<A HREF="../" target=_top><img src=../images/logo.jpg border=0></A><br><table border="0" cellpadding="0" cellspacing="0" width="152" border=0><tr><td width=10></td><td width=5 bgcolor=rgb(255,255,244)></td><td bgcolor=rgb(255,255,244) width=142><br>&nbsp;<a href="../" target=_top>powrót do strony głównej</a><br></td></tr></table><table width=152 cellspacing=0 cellpadding=0 border=0></tr><td width=10><img src="../images/pixel.gif" width="10" height="1" border="0"></td><td bgcolor=rgb(255,255,244)><img src=../images/corn_panel_lb.gif align=left vspace=0 hspace=0><img src=../images/corn_panel_rb.gif align=right vspace=0 hspace=0></td></tr></table>');


parent.Towar.document.write('</td><td width="5" align="center"><img src="../images/pixel.gif" width="5" height="1" border="0"></td><td valign=top><img src=../images/pixel.gif width=1 height=5 border="0"><br><table width=438 cellspacing=0 cellpadding=0 border=0 bgcolor=white><tr><td><img src=../images/corn_panel_lt.gif align=left vspace=0 hspace=0><img src=../images/corn_panel_rt.gif align=right vspace=0 hspace=0></td></tr></table><table width=438 cellspacing=0 cellpadding=5 border=0 bgcolor=white></tr><td>');
  



    parent.Towar.document.write('<TABLE align=center width=100% cellpadding="3" cellspacing="3" border="0">');
    parent.Towar.document.write('<TR height="18">');
    parent.Towar.document.write('<Td align="center" bgcolor=rgb(255,230,230) WIDTH="440">&nbsp;&nbsp;Opis</Td><Td bgcolor=rgb(255,230,230) align="center" WIDTH="75">Kwota</Td><Td bgcolor=rgb(255,230,230) align="center" WIDTH="50">Usun</Td></TR>');
    suma=0;
    for ( i = 1 ; i <= Lista_Informacji.wielkosc ; i++)
    {
      wartosc = zaokr(Lista_Informacji[i].ilosc*Lista_Informacji[i].cena,0.01);
      
      parent.Towar.document.write('<TR align="center"><TD bgcolor=rgb(255,245,245) WIDTH="440" align="left" class="koszie">'+Lista_Informacji[i].nazwa+'</TD><TD bgcolor=rgb(255,245,245) WIDTH="75" align=right>'+waluta_scr(Lista_Informacji[i].cena)+'</TD>');

      parent.Towar.document.write('<TD bgcolor=rgb(255,245,245) WIDTH="50" align="center" class="modie"><A HREF="javascript:parent.Kosz.usun(' + i + ')" alt=" Usuń pozycję ">Usun</A></TD></TR>');

      suma += wartosc;
    };
    

    parent.Towar.document.write('<TR><TD align="right" colspan="3" ><br><h3>Wartość netto: &nbsp; '+waluta_scr(suma)+'<br>');
    
    
// - - - - - - - - --  - - tu jest okreslenie metraza kazdego z domow osobno - - - - - - - - - - - - - - - - - - - - - - - - - - - //    
    
    
    parent.Towar.document.write('<font color=red>zł/m<sup>2</sup>: &nbsp;~'+waluta_scr(suma / 144)+'</h3></font><br>powierzchnia mieszkalna ~ 144 m<sup>2</sup></TD></tr>');


    parent.Towar.document.write('</TABLE>');
    
	parent.Towar.document.write('<br><TABLE align="center" cellspacing="0" cellpadding="2" border="0">');
	parent.Towar.document.write('<TR><TD ALIGN="center"><font size="2">');

	parent.Towar.document.write('<BR><a href="lista.htm">wroc do kalkulacji</a>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="index.html" target=_top>Licz od nowa</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="javascript:print()">drukuj</a>');
    parent.Towar.document.write('</TD></TR></TABLE>');




parent.Towar.document.write('</td></tr></table><table width=438 cellspacing=0 cellpadding=0 border=0 bgcolor=white></tr><td><img src=../images/corn_panel_lb.gif align=left vspace=0 hspace=0><img src=../images/corn_panel_rb.gif align=right vspace=0 hspace=0></td></tr></table></td><td width="5"><img src="../images/pixel.gif" width="5" height="1" border="0"></td><td valign="top" width="160"><img src="../images/pixel.gif" width="1" height="5" border="0"><br>');


parent.Towar.document.write('<table width=150 cellspacing=0 cellpadding=0 border=0 bgcolor=rgb(255,255,244)></tr><td><img src=../images/corn_panel_lt.gif align=left vspace=0 hspace=0><img src=../images/corn_panel_rt.gif align=right vspace=0 hspace=0></td></tr></table><table width=150 cellspacing=7 cellpadding=0 border=0 bgcolor=rgb(255,255,244)><tr><td align=center>Można usuwać pozycje kalkulacji, można również powrócić do listy i kontynułować dodawanie</td></tr></table><table width=150 cellspacing=0 cellpadding=0 border=0 bgcolor=rgb(255,255,244)></tr><td><img src=../images/corn_panel_lb.gif align=left vspace=0 hspace=0><img src=../images/corn_panel_rb.gif align=right vspace=0 hspace=0></td></tr></table><p></td></tr></table></td></tr></table>');













  }
  else
  {


	parent.Towar.document.write('<br><br><br><br><H3 ALIGN="center">Aktualna wartość kalkulacji = 0,00 zł</H3>');
	parent.Towar.document.write('<TABLE width="100%" cellspacing="0" cellpadding="5" border="0"><TR><TD ALIGN="center">');
	parent.Towar.document.write('<P><a href="index.html" target=_top>Zacznij kalkulację od nowa</a>');
	parent.Towar.document.write('</P></TD></TR></TABLE><BR>');

    self.setTimeout("goto()", 100);
  
   
  };

  parent.Towar.document.write('</BODY></HTML>');
  parent.Towar.document.close();
  pokaz_krotkie_info()
}




function licz_sume_tr()           //Obliczanie sumy zamówienia
{
    suma=0;
    for ( i = 1 ; i <= Lista_Informacji.wielkosc ; i++)
    {
      suma += zaokr(Lista_Informacji[i].ilosc*Lista_Informacji[i].cena,0.01);
    };
}


function pokaz_krotkie_info()     //Przedstawianie sumy zamówienia
{
  licz_sume_tr();
  self.document.krotkie_info.ile_w_koszu.value = waluta_scr(suma);
}


function goto() {
    window.open('index_a.php?m=domy', '_top');
}
        
        
