home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2003 November / PCWK1103B.iso / Reklamy / Serwer_JaPa_PCWK / sklep / index_pliki / ie.js < prev    next >
Text File  |  2003-06-17  |  25KB  |  472 lines

  1.  
  2. // Sklep
  3. // Deklaracja zmiennych, kt≤rym warto£ci mog╣ nadawaµ inne pliki
  4. // Zmienna "adresat" zawiera adres e-mail, pod kt≤ry ma byµ wys│ane zam≤wienie
  5.   var adresat = "sklep@japa.com.pl";
  6. // Zmienna "transport" zawiera sta│y koszt wysy│ki zamowionego towaru lub tekst, np. Tranport gratis
  7.   var transport = "Razem warto£µ zakup≤w ";
  8.  
  9. // Zmienna "suma" s│u┐y do wy£wietlania warto£ci zam≤wienia
  10. suma = 0;
  11.  
  12. // Kreator listy (tablicy) bez element≤w
  13. function Lista_pusta()
  14. {
  15.   this.wielkosc = 0;
  16.   return this;
  17. }
  18.  
  19. // Utworzenie pustej listy (lub inaczej: tablicy o rozmiarze 0)
  20. Lista_Informacji = new Lista_pusta();
  21.  
  22. // Kreator listy (tablicy) o podanym rozmiarze z pustymi elementami
  23. function Tablica_nowa(rozmiar)
  24. {
  25.   this.wielkosc = rozmiar;
  26.   for ( i=1; i<=rozmiar; i++) { this[i] = null };
  27. }
  28.  
  29. // Kreator rekordu opisuj╣cego pozycjΩ zam≤wienia; "Dokladnosc" oznacza dokladno£µ zamawianej ilo£ci, np. 0.1 lub 0.01
  30. function rekord(Nazwa , Ilosc, Cena, Dokladnosc)
  31. {
  32.   this.nazwa = Nazwa;
  33.   this.ilosc = Ilosc;
  34.   this.cena = Cena;
  35.   this.dokladnosc = Dokladnosc;
  36.   return this;
  37. }
  38.  
  39. // Bardzo pokrΩtna i "empiryczna" ;-) funkcja zaokr╣glaj╣ca.
  40. // Na razie nikt nie narzeka│ na jej z│e dzia│anie na r≤┐nych przeg│╣darkach.
  41. // Proste funkcje "podziel/zaokr╣glaj/pomn≤┐" z powodu r≤┐nic w interpretacji JavaScript zawodz╣
  42. function zaokr( Liczba, Dokladnosc)
  43. {
  44.   if ( Dokladnosc < 0.0001 ) { Dokladnosc = 0.0001 }; // Ograniczenie dok│adnoci
  45.   var Liczba_str = "" + Math.round(Liczba / Dokladnosc) * Dokladnosc;
  46.   var Liczba_len = Liczba_str.length; // Ustalenie d│ugo£ci │a±cucha znakowego
  47.   var poz = Math.log(1/Dokladnosc)/Math.log(10); // Ustalenie pozycji znaku dziesiΩtnego
  48.   if (Liczba_str.indexOf(".")>-1 && Dokladnosc < 1)
  49.   {  var Calk=Liczba_str.substring(0,Liczba_str.indexOf("."));
  50.      var Ulamk=Liczba_str.substring(Liczba_str.indexOf(".")+1,Liczba_str.indexOf(".")+1+poz);
  51.      return parseFloat(""+Calk+"."+Ulamk);
  52.   }
  53.   else
  54.   {
  55.     return parseInt(Liczba_str);
  56.   }
  57. }
  58.  
  59. // Funkcja zamieniaj╣ca liczbΩ na │a±cuch w postaci "#0.00 z│". Zawsze uzupe│nia do dw≤ch miejsc po znaku dziesiΩtnym.
  60. function waluta_scr(Liczba)
  61. {
  62.   var Waluta = Math.round(Liczba*100);
  63.   if (Waluta >=10)
  64.   {
  65.     var Waluta_str = "" + Waluta;
  66.     var Waluta_len = Waluta_str.length;
  67.   }
  68.   else
  69.   {
  70.     var Waluta_str = "0" + Waluta;
  71.     var Waluta_len = Waluta_str.length;
  72.   }
  73.   Waluta_str = Waluta_str.substring(0, Waluta_len - 2) + "." + Waluta_str.substring(Waluta_len - 2, Waluta_len) + "z│";
  74.   if (Liczba < 1) {Waluta_str = "0"+Waluta_str};
  75.   return Waluta_str;
  76. }
  77.  
  78.  
  79. // Funkcja stara siΩ z podanego argumentu wytworzyµ liczbΩ zmiennoprzecinkow╣.
  80. // Szczeg≤lnie wa┐ne przy ustawieniach regionalnych np. w Windows.
  81. // JavaScript zapis 9,99 potraktuje jako tekst, 9.99 jako liczbΩ.
  82. // Tutaj zamieniamy "," na ".".
  83. function Analizuj(info)
  84. {
  85.   var p_temp = ""+info;
  86.   var p1_temp = null;
  87.   var p2_temp = null;
  88.   if (p_temp.indexOf(",")>-1)
  89.   {  var p1_temp=p_temp.substring(0,p_temp.indexOf(","));
  90.      var p2_temp=p_temp.substring(p_temp.indexOf(",")+1);
  91.      p_temp=p1_temp+"."+p2_temp;
  92.   };
  93.   p_temp = parseFloat(p_temp);
  94.   if (isNaN(p_temp)) {p_temp = 0};
  95.   return p_temp;
  96. }
  97.  
  98. // Uzupe│nia listΩ o now╣ pozycjΩ zam≤wienia
  99. function dodaj_element(Lista, nazwa, ilosc, cena, dokladnosc)
  100. {
  101.   if (!(ilosc > 0))
  102.   {
  103.     alert("Nie poda│e£ dodatniej ilo£ci !");
  104.     return(Lista);
  105.   };
  106.   for ( i=1 ; i<= Lista.wielkosc; i++) // Je┐eli istnieje ju┐ pozycja o danej nazwie, powiΩkszana jest tylko ilo£µ
  107.   {
  108.     if (Lista[i].nazwa == nazwa)
  109.     {
  110.       if (confirm("Ta pozycja jest ju┐ w koszyku ! \nCzy modyfikowac dotychczasow╣ ilo£µ?"))
  111.       {
  112.         if (confirm("Czy zwiΩkszyµ o podana ilo£µ ? \n(W przeciwnym przypadku warto£ci zostan╣ podmienione)"))
  113.         {
  114.           Lista[i].ilosc += ilosc;
  115.         }
  116.         else
  117.         {
  118.           Lista[i].ilosc = ilosc;          
  119.         };
  120.       };
  121.       return(Lista);
  122.     };
  123.   }; 
  124.   wlk = ++Lista.wielkosc; //Je£li nie, to powiΩkszamy listΩ
  125.   Lista[wlk] = new rekord( nazwa, ilosc, cena, dokladnosc); // dodaj╣c na ko±cu kolejny rekord z pozycj╣ zam≤wienia
  126.   return Lista;
  127. }
  128.  
  129. // Usuwanie z listy wybranego elementu
  130. function usun_element(Lista, numer)
  131. {
  132.   if (Lista.wielkosc > 0)
  133.   {
  134.     Lista_mala = new Tablica_nowa(Lista.wielkosc - 1);
  135.     for ( i = 1; i <= Lista.wielkosc - 1; i++) 
  136.     { 
  137.       if ( i < numer )
  138.       {  Lista_mala[i] = Lista[i]  }
  139.       else
  140.       {  Lista_mala[i] = Lista[i+1]  }
  141.     };
  142.     return Lista_mala;
  143.   };
  144. }
  145.  
  146. // Filtrowanie listy tak, aby pozota│y rekordy tylko z dodatnia ilo£ci╣
  147. function dodatnie(Lista)
  148. {
  149.   licznik = 0;
  150.   for (i=1; i<=Lista.wielkosc; i++)
  151.   {
  152.     if (Lista[i].ilosc <= 0) { licznik++ }
  153.   };
  154.   Lista_dodatnie = new Tablica_nowa(Lista.wielkosc - licznik);
  155.   licznik = 0;
  156.   for (i=1; i<=Lista.wielkosc; i++)
  157.   {
  158.     if (Lista[i].ilosc > 0)
  159.     {
  160.       Lista_dodatnie[++licznik] = new rekord(Lista[i].nazwa, Lista[i].ilosc, Lista[i].cena, Lista[i].dokladnosc)
  161.     }
  162.   };
  163.   return Lista_dodatnie;
  164. }
  165.  
  166. // Funkcja wywo│ywana z innych plik≤w (ramek) opisuj╣cych towary
  167. // poprzez odpowiednie odnosniki ("linki").
  168. function dodaj(nazwa, cena, dokladnosc)
  169. {
  170.   ilosc=prompt("Podaj zamawian╣ ilo£µ:", dokladnosc); //pytanie o ilo£µ
  171.   Lista_Informacji = dodaj_element(Lista_Informacji, nazwa, zaokr(Analizuj(ilosc), Analizuj(dokladnosc)), Math.abs(Analizuj(cena)),  Analizuj(dokladnosc)); // sprawdzenie "jako£ci" danych liczbowych (zamiania "," na ".")
  172.   Lista_Informacji = dodatnie(Lista_Informacji); // odrzucenie warto£ci niedodatnich
  173.   pokaz_krotkie_info();
  174. }
  175.  
  176. // Funkcja wywo│ywana z innych plik≤w (ramek) opisuj╣cych towary
  177. // poprzez odpowiednie odnosniki ("linki").
  178. function dodaj_bez_pytania(nazwa, cena, ilosc, dokladnosc)
  179. {
  180.   Lista_Informacji = dodaj_element(Lista_Informacji, nazwa, zaokr(Analizuj(ilosc), Analizuj(dokladnosc)), Math.abs(Analizuj(cena)),  Analizuj(dokladnosc)); // sprawdzenie "jako£ci" danych liczbowych (zamiania "," na ".")
  181.   Lista_Informacji = dodatnie(Lista_Informacji); // odrzucenie warto£ci niedodatnich
  182.   pokaz_krotkie_info();
  183. }
  184.  
  185. // Nowa funkcja wywo│ywana z innych plik≤w (ramek - te┐ tworzonych dynamicznie)
  186. // w celu usuniΩcia wszystkich pozycji z zam≤wienia,
  187. // zabezpieczona przed przypadkowym skasowaniem zam≤wienia
  188. function usun_zam()
  189. {
  190.   if (confirm("Funkcja ta spowoduje skasowanie ca│ego zam≤wienia ! \nCzy na pewno tego w│a£nie chcesz ?"))
  191.   {
  192.   Lista_Informacji = new Lista_pusta();
  193.   pokaz();
  194.   };
  195. }
  196.  
  197. // Funkcja wywo│ywana z innych plik≤w (ramek - te┐ tworzonych dynamicznie)
  198. // w celu usuniΩcia wszystkich pozycji z zam≤wienia po jego wys│aniu.
  199. function usun_all()
  200. {
  201.   Lista_Informacji = new Lista_pusta();
  202.   parent.Towar.document.open();
  203.   parent.Towar.document.write('<HTML><HEAD>');
  204.   parent.Towar.document.write('<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=windows-1250">');
  205.   parent.Towar.document.write('<META HTTP-EQUIV="Content-Language" CONTENT="pl">');
  206.   parent.Towar.document.write('</HEAD><BODY BGCOLOR="#FFC439" LEFTMARGIN="0" TOPMARGIN="10">');
  207.   parent.Towar.document.write('<font face="Arial" color="#000080"><H3 align="center">DziΩkujemy za wys│anie zam≤wienia.</H3>');
  208.   parent.Towar.document.write('<TABLE width="100%" cellspacing="0" cellpadding="3" border="1"><TR><TD align="center">');
  209.   parent.Towar.document.write('Upewnij siΩ, czy zam≤wienie z<BR> Twojej skrzynki nadawczej zostao wys│ane.<BR>Po otrzymaniu zam≤wienia niezw│ocznie siΩ skontaktujemy celem jego potwierdzenia.<BR><STRONG>Zapraszamy ponownie</STRONG>.');
  210.   parent.Towar.document.write('<HR width="90%">');
  211.   parent.Towar.document.write('Kosz jest ju┐ pusty.<BR>Mo┐esz rozpocz╣µ realizacjΩ kolejnego zam≤wienia.</TD></TR></TABLE>');
  212.   parent.Towar.document.write('</BODY></HTML>');
  213.   parent.Towar.document.close();
  214.   pokaz_krotkie_info();
  215.   return true;
  216. }
  217.  
  218. // Funkcja wywo│ywana z innych plik≤w (ramek - te┐ tworzonych dynamicznie)
  219. // w celu usuniΩcia jednej pozycji z zam≤wienia.
  220. function usun(numer)
  221. {
  222.   Lista_Informacji = usun_element(Lista_Informacji, numer);
  223.   pokaz();
  224. }
  225.  
  226. // Funkcja wywo│ywana z innych plik≤w (ramek - te┐ tworzonych dynamicznie)
  227. // w celu modyfikacji jednej pozycji z zam≤wienia.
  228. function zmien(numer)
  229. {
  230.   liczba = Lista_Informacji[numer].ilosc;
  231.   nowa_liczba = prompt("Podaj now╣ ilo£µ:", liczba);
  232.   if (nowa_liczba != "" && nowa_liczba != null)
  233.   { 
  234.     liczba = zaokr(Analizuj(nowa_liczba), Analizuj(Lista_Informacji[numer].dokladnosc));
  235.     if ((liczba > 0) || (liczba <= 0 && confirm("Wpisales dane, kt≤re usun╣ tΩ pozycjΩ z koszyka ! \nCzy jeste£ pewien ┐e tego w│a£nie chcesz ?")))
  236.     {
  237.       Lista_Informacji[numer].ilosc = liczba;
  238.       Lista_Informacji = dodatnie(Lista_Informacji);
  239.       pokaz();
  240.     };
  241.   };
  242. }
  243.  
  244. // Funkcja przedstawiaj╣c╣ w ramce "Towar" obecny stan zam≤wienia //
  245. function pokaz()
  246. {
  247.   parent.Towar.document.open();
  248.   parent.Towar.document.write('<HTML><HEAD>');
  249.   parent.Towar.document.write('<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=windows-1250">');
  250.   parent.Towar.document.write('<META HTTP-EQUIV="Content-Language" CONTENT="pl">');
  251.   parent.Towar.document.write('</HEAD><BODY bgcolor="#FFC439" leftmargin="0" topmargin="5">');
  252.   if (Lista_Informacji.wielkosc >= 1)
  253.   {
  254.     parent.Towar.document.write('<font face="Arial" color="#000080"><H3 ALIGN="center">Zawarto£µ koszyka</H3>');
  255.     parent.Towar.document.write('<TABLE align="center" width="90%" cellspacing="0" cellpadding="3" border="1"  bordercolorlight="#C0C0C0" bordercolordark="#808080">');
  256.     parent.Towar.document.write('<TR class="nagie"><TH WIDTH="37%">Nazwa produktu</TH><TH WIDTH="15%">Cena</TH><TH WIDTH="10%">Ilo£µ</TH><TH WIDTH="18%">Warto£µ</TH><TH WIDTH="20%">Modyfikacje</TH></TR>');
  257.     suma=0;
  258.     for ( i = 1 ; i <= Lista_Informacji.wielkosc ; i++)
  259.     {
  260.       wartosc = zaokr(Lista_Informacji[i].ilosc*Lista_Informacji[i].cena,0.01);
  261.       parent.Towar.document.write('<TR align="right"><TD align="left" class="koszie">'+Lista_Informacji[i].nazwa+'</TD><TD class="koszie">'+waluta_scr(Lista_Informacji[i].cena)+'</TD><TD class="koszie">'+Lista_Informacji[i].ilosc+'</TD><TD class="koszie">'+waluta_scr(wartosc)+'</TD>');
  262.       parent.Towar.document.write('<TD align="center" class="modie"><A HREF="javascript:parent.Kosz.usun(' + i + ')"><img src="kosz-remove.gif" width="39" height="24" border="0" alt=" Usu± pozycjΩ "></A>   <A HREF="javascript:parent.Kosz.zmien(' + i + ')"><img src="kosz-change.gif" width="39" height="24" border="0" alt=" Zmie± ilo£µ "></A></TD></TR>');
  263.       suma += wartosc;
  264.     };
  265.     if (Analizuj(transport) != 0)
  266.     {
  267.       parent.Towar.document.write('<TR align="right" class="koszie"><TD align="left" >Koszty wysy│ki</TD><TD>'+waluta_scr(transport)+'</TD><TD>1</TD><TD >'+waluta_scr(transport)+'</TD><TD align="center" class="sumaie"><SPAN STYLE="font-style: italic; font-size: 10pt; color: #FF0000">Usu± / Zam≤w</SPAN></TD></TR>');
  268.       suma += Analizuj(transport);
  269.     }
  270.     else if ((transport != null) && (transport != ""))
  271.     {
  272.        parent.Towar.document.write('<TR align="right" class="koszie"><TD align="left" colspan="4">'+transport+'</TD><TD align="center" class="sumaie"><SPAN STYLE=" font-style: italic; font-size: 10pt; color: #FF0000">Usu± / Zam≤w</SPAN></TD></TR>');
  273.     };
  274.     parent.Towar.document.write('<TR align="right" class="sumaie"><TD colspan="3" >Razem warto£µ </TD><TD>'+waluta_scr(suma)+'</TD>');
  275.     parent.Towar.document.write('<TD align="center" class="modie"><A HREF="javascript:parent.Kosz.usun_zam()"><img src="kosz-cancel.gif" width="39" height="24" border="0" alt=" Usu± wszystko "></A>   <A HREF="wyslij.htm"><img src="kosz-mail.gif" width="39" height="24" border="0" alt=" Realizuj zam≤wienie "></A></TD></TR></TABLE>');
  276.                 parent.Towar.document.write('<H3 align="center"><B>Do powy┐szych cen nale┐y doliczyµ 10 z│ (koszty wysy│ki)</B></H3>');
  277.     parent.Towar.document.write('<TABLE align="center" cellspacing="0" cellpadding="2" border="0"><TR><TD ALIGN="center"><FORM NAME="Historia"></TD></TR>');
  278.     parent.Towar.document.write('<TR><TD ALIGN="center">');
  279.     parent.Towar.document.write('<BR><INPUT TYPE="button" VALUE="Wstecz" onClick="history.back()"></TD></TR>');
  280.     parent.Towar.document.write('<TR><TD ALIGN="center">');
  281.     parent.Towar.document.write('Kliknij na przycisk <B>Wstecz</B> aby kontynuowaµ zamawianie produkt≤w.<BR><SPAN STYLE="color: #FF0000">Je┐eli jednak dokona│e£ jakiejkolwiek modyfikacji w Twojej li£cie zam≤wie±,<BR>przejdƒ bezpo£rednio do stron z produktami.</SPAN>');
  282.     parent.Towar.document.write('</TD></TR></TABLE></FORM>');
  283.   }
  284.   else
  285.   {
  286.     parent.Towar.document.write('<font face="Arial" color="#000080"><H3 ALIGN="center">Tw≤j koszyk jest pusty</H3>');
  287.     parent.Towar.document.write('<TABLE width="100%" cellspacing="0" cellpadding="5" border="0"><TR><TD ALIGN="center">');
  288.     parent.Towar.document.write('<P>Je£li chcesz kontynuowaµ zamawianie produkt≤w<BR>przejdƒ bezpo£rednio do stron z produktami.');
  289.     parent.Towar.document.write('</P></TD></TR></TABLE><BR>');
  290.   };
  291.   parent.Towar.document.write('</BODY></HTML>');
  292.   parent.Towar.document.close();
  293.   pokaz_krotkie_info()
  294. }
  295.  
  296. // Funkcja przedstawiaj╣c╣ w ramcΩ ("frame") "Towar" formularz do wys│ania zam≤wienia
  297. function wyslij_zam()
  298. {
  299.   parent.Towar.document.open();
  300.   parent.Towar.document.write('<HTML><HEAD>');
  301.   parent.Towar.document.write('<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=windows-1250">');
  302.   parent.Towar.document.write('<META HTTP-EQUIV="Content-Language" CONTENT="pl">');
  303.   parent.Towar.document.write('</HEAD><BODY bgcolor="#FFC439" leftmargin="0" topmargin="5">');
  304.  
  305.  
  306. // Funkcja umo┐liwiaj╣ca zmianΩ docelowego adresu skrzynki e-mail, na kt≤ry kierowane bΩdzie zam≤wienie. Je£li uwa┐asz ┐e jest zbΩdna umie£µ przed ni╣ znak komantarza ( // ).
  307. //  if (adresat == "skrzynka@host" || adresat == "" || adresat == null) {adresat=prompt("Pytanie o adres skrzynki e-mail, na kt≤ry kierowane bΩdzie  zam≤wienie. \nMo┐esz go jeszcze zmienic wpisuj╣c inny adres skrzynki !", "skrzynka@host")};
  308.  
  309.   if (Lista_Informacji.wielkosc >= 1)
  310.   {
  311.     parent.Towar.document.write('<font face="Arial" color="#000080"><H3 ALIGN="center">Realizowanie zam≤wienia</H3>');
  312.     parent.Towar.document.write('<TABLE align="center" width="100%" cellspacing="0" cellpadding="0" border="0"><TR><TD align="center">');
  313.     parent.Towar.document.write('<FORM ACTION="mailto:'+adresat+'?subject=Zam≤wienie ze sklepu internetowego" METHOD="POST" ENCTYPE="text/plain" NAME="Zamowienie">');
  314.     parent.Towar.document.write('<TABLE align="center" width="90%" cellspacing="0" cellpadding="3" border="1" bordercolorlight="#C0C0C0" bordercolordark="#808080">');
  315.     parent.Towar.document.write('<CAPTION ALIGN="CENTER"><B>Specyfikacja zam≤wienia</B></CAPTION>');
  316.     parent.Towar.document.write('<TR class="nagie"><TH width="50%">Nazwa produktu</TH><TH width="20%">Cena</TH><TH width="10%">Ilo£µ</TH><TH width="30%">Warto£µ</TH></TR></FONT>');
  317.     for ( i = 1 ; i <= Lista_Informacji.wielkosc ; i++)
  318.     {
  319.       parent.Towar.document.write('<INPUT TYPE="HIDDEN" NAME="nazwa'+i+'" VALUE="'+Lista_Informacji[i].nazwa+'">');
  320.       parent.Towar.document.write('<INPUT TYPE="HIDDEN" NAME="cena'+i+'" VALUE="'+Lista_Informacji[i].cena+'z│">');
  321.       parent.Towar.document.write('<INPUT TYPE="HIDDEN" NAME="ilosc'+i+'" VALUE="'+Lista_Informacji[i].ilosc+'">');
  322.       wartosc = zaokr(Lista_Informacji[i].ilosc*Lista_Informacji[i].cena,0.01);
  323.       parent.Towar.document.write('<TR align="right" class="koszie"><TD align="left" >'+Lista_Informacji[i].nazwa+'</TD><TD>'+waluta_scr(Lista_Informacji[i].cena)+'</TD><TD>'+Lista_Informacji[i].ilosc+'</TD><TD>'+waluta_scr(wartosc)+'</TD></TR>');
  324.     };
  325.     if (Analizuj(transport) != 0)
  326.     {
  327.       parent.Towar.document.write('<INPUT TYPE="hidden" NAME="Transport" VALUE="'+transport+'z│">');
  328.       parent.Towar.document.write('<INPUT TYPE="hidden" NAME="Wartosc zam." VALUE="'+waluta_scr(suma)+'">');
  329.       suma += Analizuj(transport);
  330.       parent.Towar.document.write('<TR align="right" class="koszie"><TD align="left">Transport</TD><TD>'+waluta_scr(transport)+'</TD><TD class="kosz">1</TD><TD>'+waluta_scr(transport)+'</TD></TR>');
  331.     }
  332.     else if ((transport != null) && (transport != ""))
  333.     {
  334.       parent.Towar.document.write('<INPUT TYPE="hidden" NAME="Wartosc zam." VALUE="'+waluta_scr(suma)+'">');
  335.     };
  336.     parent.Towar.document.write('<TR align="right" class="sumaie"><TD colspan="3" >Sumaryczna warto£µ </TD><TD>'+waluta_scr(suma)+'</TD></TR></TABLE><BR>');
  337.     parent.Towar.document.write('<INPUT TYPE="BUTTON" VALUE="Popraw zam≤wienie" onClick="parent.Kosz.pokaz()">     <INPUT TYPE="BUTTON" VALUE="Skasuj zam≤wienie" class="red"  onClick="parent.Kosz.usun_zam()"><HR width="90%">');
  338.     parent.Towar.document.write('<TABLE width="90%" cellspacing="0" cellpadding="2" border="0">');
  339.     parent.Towar.document.write('<CAPTION align="center"><B>Do powy┐szych cen nale┐y doliczyµ 10 z│ (koszty wysy│ki)</B></CAPTION>');
  340.     parent.Towar.document.write('<CAPTION align="center"><B>Kto zamawia:</B></CAPTION>');
  341.     parent.Towar.document.write('<TR><TD align="left" colspan="2"><DIV STYLE="text-align: justify">Nale┐y dok│adnie wype│niµ wszyskie pola formularza, gdy┐ w przeciwnym wypadku uniemo┐liwi to dostarczenie zam≤wienia. Pole numer <B>NIP</B> wype│niaj╣ firmy (instytucje) lub osoby fizyczne pragn╣ce otrzymaµ fakturΩ VAT.<BR><SPAN STYLE="color: #FF0000">Pola oznaczone symbolem gwiazdki s╣ polami obowi╣zkowymi !</SPAN></DIV></TD></TR>');
  342.     parent.Towar.document.write('<TR class="zamie"><TD align="right"><B>*</B> ImiΩ i Nazwisko</TD><TD align="left"><INPUT TYPE="TEXT" NAME="nazwisko" VALUE="" SIZE="25" MAXLENGTH="35" onChange="parent.Kosz.set_val_cookie(\'nazwisko\', parent.Towar.document.Zamowienie.nazwisko.value)"></TD></TR>');
  343.     parent.Towar.document.write('<TR class="zamie" ><TD align="right">Nazwa firmy (instytucji)</TD><TD align="left"><INPUT TYPE="TEXT" NAME="firma" VALUE="" SIZE="25" MAXLENGTH="35" onChange="parent.Kosz.set_val_cookie(\'firma\', parent.Towar.document.Zamowienie.firma.value)"></TD></TR>');
  344.     parent.Towar.document.write('<TR class="zamie"><TD align="right">Numer NIP</TD><TD align="left"><INPUT TYPE="TEXT" NAME="nip" VALUE="" SIZE="10" MAXLENGTH="13" onChange="parent.Kosz.set_val_cookie(\'nip\', parent.Towar.document.Zamowienie.nip.value)"></TD></TR>');
  345.     parent.Towar.document.write('<TR class="zamie"><TD align="right"><B>*</B> Telefon (telefax)</TD><TD align="left"><INPUT TYPE="TEXT" NAME="telefon" VALUE="" SIZE="15" MAXLENGTH="20" onChange="parent.Kosz.set_val_cookie(\'telefon\', parent.Towar.document.Zamowienie.telefon.value)"></TD></TR>');
  346.     parent.Towar.document.write('<TR class="zamie"><TD align="right"><B>*</B> Skrzynka E-mail</TD><TD lign="left"><INPUT TYPE="TEXT" NAME="mail" VALUE="" SIZE="15" MAXLENGTH="35" onChange="parent.Kosz.set_val_cookie(\'mail\', parent.Towar.document.Zamowienie.mail.value)"></TD></TR>');
  347.     parent.Towar.document.write('<TR class="zamie" ><TD align="right"><B>*</B> Adres</TD><TD align="left"><INPUT TYPE="TEXT" NAME="adres" VALUE="" SIZE="25" MAXLENGTH="35" onChange="parent.Kosz.set_val_cookie(\'adres\', parent.Towar.document.Zamowienie.adres.value)"></TD></TR>');
  348.     parent.Towar.document.write('<TR class="zamie"><TD align="right"><B>*</B> Kod pocztowy</TD><TD align="left"><INPUT TYPE="TEXT" NAME="kod" VALUE="" SIZE="10" MAXLENGTH="6" onChange="parent.Kosz.set_val_cookie(\'kod\', parent.Towar.document.Zamowienie.kod.value)"></TD></TR>');
  349.     parent.Towar.document.write('<TR class="zamie" ><TD align="right"><B>*</B> Miejscowo£µ</TD><TD align="left"><INPUT TYPE="TEXT" NAME="miasto" VALUE="" SIZE="20" MAXLENGTH="35" onChange="parent.Kosz.set_val_cookie(\'miasto\', parent.Towar.document.Zamowienie.miasto.value)"></TD></TR>');
  350.     parent.Towar.document.write('<TR class="zamie"><TD align="right">Uwagi:</TD><TD align="left"><TEXTAREA NAME="Uwagi" COLS="30" ROWS="5"></TEXTAREA></TD></TR>');
  351.     parent.Towar.document.write('<INPUT TYPE="hidden" NAME="koniec" VALUE="Koniec zamowienia">');
  352.     parent.Towar.document.write('<TR class="zamie"><TD align="center" colspan="2">');
  353.     parent.Towar.document.write('<INPUT TYPE="RESET" VALUE="Wyczy£µ formularz">');
  354.     parent.Towar.document.write('</TD></TR>');
  355.     parent.Towar.document.write('<TR><TD align="center" colspan="2"><DIV STYLE="line-height: 18pt">Po dok│adnym wype│nienu formularza<BR><INPUT TYPE="BUTTON" VALUE="Wy£lij zam≤wienie" class="blue" onclick="parent.Kosz.kontrola()"></DIV></TD></TR>');
  356.     parent.Towar.document.write('</TABLE></FORM>');
  357.     parent.Towar.document.write('</TD></TR></TABLE>');
  358.   }
  359.   parent.Towar.document.write('</BODY></HTML>');
  360.   parent.Towar.document.close();
  361.   z_ciacha();
  362. }
  363.  
  364. // Poprawiona i bardziej szczeg≤│owa kontrola danych zamawiaj╣cego przed wys│aniem zam≤wienia.
  365. function kontrola()
  366. {
  367.   if (parent.Towar.document.Zamowienie.nazwisko.value == "")
  368.   {
  369.     alert("ProszΩ podaµ ImiΩ i Nazwisko !");
  370.     return false;
  371.   };
  372.   
  373.   if (parent.Towar.document.Zamowienie.telefon.value == "" || parent.Towar.document.Zamowienie.mail.value == "")
  374.   {
  375.     alert("ProszΩ podaµ numer telefonu kontaktowego, \nwraz z numerem kierunkowym \noraz ares skrzynki e-mail !");
  376.     return false;
  377.   };
  378.   
  379.     if (parent.Towar.document.Zamowienie.adres.value == "" || parent.Towar.document.Zamowienie.kod.value == "" || parent.Towar.document.Zamowienie.miasto.value == "")
  380.     {
  381.       alert("ProszΩ podaµ dok│adny adres do korespondencji ! \nAdres - Nazwa ulicy, numer posesji i lokalu \nKod pocztowy i Miejscowo£µ");
  382.       return false;
  383.     };
  384.  
  385.   if (parent.Towar.document.Zamowienie.mail.value != "")
  386.   {
  387.     gdzie_at = Analizuj(parent.Towar.document.Zamowienie.mail.value.indexOf("@"));
  388.     dlugosc = Analizuj(parent.Towar.document.Zamowienie.mail.value.lenght);
  389.     if (gdzie_at == 0 || gdzie_at == (dlugosc-1))
  390.     {
  391.       alert("Popraw adres skrzynki e-mail !");
  392.       return false;
  393.     };
  394.   };
  395.   parent.Towar.document.Zamowienie.submit();
  396.   set_exp_cookie(1, 0, 0);
  397.   usun_all();
  398. }
  399.  
  400. //Funkcja pobiera wskazany parametr z "ciasteczek"
  401. function get_val_cookie(param_name_)
  402. {
  403.   param_name = param_name_+"=";
  404.   start_param_name = document.cookie.indexOf(param_name);
  405.   if (start_param_name < 0) {return false};
  406.   stop_param_name = start_param_name + param_name.length;
  407.   stop_param = document.cookie.indexOf("|", stop_param_name);
  408.   return document.cookie.substring(stop_param_name, stop_param);
  409. };
  410.  
  411. //Funkcja ustawia warto£µ "ciasteczka"
  412. function set_val_cookie(param_name_, param_val_)
  413. {
  414.   if (get_val_cookie(param_name_))
  415.   {
  416.     param_name = param_name_+"=";
  417.     start_param_name = document.cookie.indexOf(param_name);
  418.     stop_param_name = start_param_name + param_name.length;
  419.     stop_param = document.cookie.indexOf("|", stop_param_name);
  420.     document.cookie = document.cookie.substring(0,stop_param_name)+param_val_+document.cookie.substring(stop_param,document.cookie.length); 
  421.   } 
  422.   else 
  423.   {
  424.      document.cookie = document.cookie + param_name_ + "=" + param_val_ + "|";
  425.   }
  426. }
  427.  
  428. //Ustawianie wa┐no£ci "ciasteczek"
  429. function set_exp_cookie(yy_, mm_, dd_)
  430. {
  431.   if (!document.cookie) {return false};
  432.   exp_date = new Date();
  433.   exp_date.setYear(exp_date.getYear()+yy_);
  434.   exp_date.setMonth(exp_date.getMonth()+mm_);
  435.   exp_date.setDate(exp_date.getDate()+dd_);
  436.   document.cookie = document.cookie + "; expires=" + exp_date.toGMTString();  
  437. }
  438.  
  439. //Pobieranie danych z "ciasteczek"
  440. function z_ciacha()
  441. {
  442.   if (get_val_cookie("nazwisko")) {parent.Towar.document.Zamowienie.nazwisko.value = get_val_cookie("nazwisko")};
  443.   if (get_val_cookie("firma"))    {parent.Towar.document.Zamowienie.firma.value    = get_val_cookie("firma")};
  444.   if (get_val_cookie("nip"))      {parent.Towar.document.Zamowienie.nip.value      = get_val_cookie("nip")};
  445.   if (get_val_cookie("mail"))     {parent.Towar.document.Zamowienie.mail.value     = get_val_cookie("mail")};
  446.   if (get_val_cookie("telefon"))  {parent.Towar.document.Zamowienie.telefon.value  = get_val_cookie("telefon")};
  447.   if (get_val_cookie("adres"))    {parent.Towar.document.Zamowienie.adres.value    = get_val_cookie("adres")};
  448.   if (get_val_cookie("kod"))      {parent.Towar.document.Zamowienie.kod.value      = get_val_cookie("kod")};
  449.   if (get_val_cookie("miasto"))   {parent.Towar.document.Zamowienie.miasto.value   = get_val_cookie("miasto")};
  450. }
  451.  
  452. //Obliczanie sumy zam≤wienia
  453. function licz_sume_tr()
  454. {
  455.     suma=0;
  456.     for ( i = 1 ; i <= Lista_Informacji.wielkosc ; i++)
  457.     {
  458.       suma += zaokr(Lista_Informacji[i].ilosc*Lista_Informacji[i].cena,0.01);
  459.     };
  460.     if (Analizuj(transport) != 0 && suma !=0)
  461.     {
  462.       suma += Analizuj(transport);
  463.     }
  464. }
  465.  
  466. //Przedstawianie sumy zam≤wienia (wraz ze zmian╣ obrazka) w ramce "kosz"
  467. function pokaz_krotkie_info()
  468. {
  469.   licz_sume_tr();
  470.   self.document.krotkie_info.ile_w_koszu.value = waluta_scr(suma);
  471.   if (suma > 0) {self.document.Obrazek_kosza.src="kosz-check-full.gif"} else {self.document.Obrazek_kosza.src="kosz-check.gif"};
  472. }