home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 May / Chip_2003-05_cd1.bin / bonus / www.paladix.cz / js / objed.js next >
Text File  |  2003-04-05  |  13KB  |  441 lines

  1. function msieversion()
  2. {
  3. var ua=window.navigator.userAgent;
  4. var msie=ua.indexOf("MSIE ");
  5. if(msie>0)
  6. return parseInt(ua.substring(msie+5,ua.indexOf(".", msie)));
  7. else
  8. return 0;
  9. }
  10. function GetCookie(name)
  11. {
  12. var CookieName=name+"=";
  13. var nStart=document.cookie.indexOf(CookieName)
  14. if (nStart==-1)
  15. return null
  16. var nEnd=document.cookie.indexOf(";",nStart+CookieName.length)
  17. if (nEnd==-1)
  18. nEnd=document.cookie.length
  19. return unescape(document.cookie.substring(nStart+CookieName.length,nEnd))
  20. }
  21. function SetCookie(name, value)
  22. {
  23. var CookieName=name+"="+escape(value)+"; expires=Sat, 31 Dec 2005 23:59:59 UTC;";
  24.  
  25. document.cookie=CookieName
  26. }
  27. function Remember()
  28. {
  29. SetCookie("fname",document.PosliForm.fname.value);
  30. SetCookie("lname",document.PosliForm.lname.value);
  31. SetCookie("firma",document.PosliForm.firma.value);
  32. SetCookie("ulice",document.PosliForm.ulice.value);
  33. SetCookie("mesto",document.PosliForm.mesto.value);
  34. SetCookie("psc",document.PosliForm.psc.value);
  35. SetCookie("telefon",document.PosliForm.telefon.value);
  36. SetCookie("email",document.PosliForm.email.value);
  37. SetCookie("prevzeti",document.PosliForm.prevzeti.value);
  38. }
  39.  
  40. function RoundMoney (num) 
  41. {
  42.     result = Math.floor(num) + "." ;
  43.   var hal = 100 * (num - Math.floor(num)) + 0.5;
  44.   result += Math.floor(hal / 10);
  45.   result += Math.floor(hal % 10);
  46.   result += " KΦ";
  47.   return (result);
  48. }
  49.  
  50. function Dobirka (cena)
  51. {
  52.     /* sazba za dobirku */
  53.     var postovne = 10;
  54.   var limit = new Array();
  55.   var sazba = new Array();
  56.     var pocet = 5;
  57.     var i = 0;
  58.  
  59.     /* definice sazeb */
  60.     limit[0] =    200; sazba[0] = 12;
  61.     limit[1] =   1000; sazba[1] = 20;
  62.     limit[2] =   5000; sazba[2] = 20;
  63.     limit[3] =  50000; sazba[3] = 30;
  64.     limit[4] = 100000; sazba[4] = 40; /* nep°edpoklßdßm cenu zßsilky v∞tÜφ, ne₧ 100000 KΦ */
  65.  
  66.     for (i = 0; i < pocet; i++)
  67.         if (cena <= limit[i]) 
  68.         {
  69.             postovne += sazba[i];
  70.             i = pocet + 1;    /* ukonΦenφ cyklu */
  71.         }
  72.  
  73.     return postovne;
  74. }
  75.  
  76. function RozdilDobirky (postovne, cena)
  77. {
  78.     var rozdil = 0;
  79.   var limit = new Array();
  80.   var sazba = new Array();
  81.     var pocet = 5;
  82.     var i = 0;
  83.  
  84.     /* poÜtovnΘ nem∙₧e b²t 0 - asi nenφ zadßno PS╚ */
  85.   if (postovne == 0)
  86.         return 0;
  87.  
  88.     /* definice sazeb */
  89.     limit[0] =    200; sazba[0] = 12;
  90.     limit[1] =   1000; sazba[1] = 20;
  91.     limit[2] =   5000; sazba[2] = 20;
  92.     limit[3] =  50000; sazba[3] = 30;
  93.     limit[4] = 100000; sazba[4] = 40; /* nep°edpoklßdßm cenu zßsilky v∞tÜφ, ne₧ 100000 KΦ */
  94.  
  95.     cena = parseFloat (cena);
  96.     postovne = parseFloat (postovne);
  97.  
  98.     for (i = 0; i < pocet; i++)
  99.         if ((cena <= limit[i]) && ((cena+postovne) > limit[i])) 
  100.         {
  101.             rozdil = sazba[i+1]-sazba[i];
  102.             i = pocet + 1;    /* ukonΦenφ cyklu */
  103.         }
  104.  
  105.     return rozdil;
  106. }
  107.  
  108. function HmotnostCenny (hmotnost)
  109. {
  110.     var postovne = 0;
  111.   var limit = new Array();
  112.   var sazba = new Array();
  113.     var pocet = 4;
  114.     var i = 0;
  115.  
  116.     /* definice sazeb */
  117.     limit[0] =  2; sazba[0] = 35;
  118.     limit[1] =  5; sazba[1] = 40;
  119.     limit[2] = 10; sazba[2] = 50;
  120.     limit[3] = 15; sazba[3] = 60;
  121.  
  122.     for (i = 0; i < pocet; i++)
  123.         if (hmotnost <= limit[i]) 
  124.         {
  125.             postovne += sazba[i];
  126.             i = pocet+1;    /* ukonΦenφ cyklu */
  127.         }
  128.  
  129.     return postovne;
  130. }
  131.  
  132. function HmotnostObchodni (hmotnost, psc)
  133. {
  134.   var postovne = 0;
  135.   var limit = new Array();
  136.   var sazba = new Array();
  137.   var pocet = 12;
  138.   var i = 0;
  139.  
  140.     /* definice sazeb */
  141.     limit[0]  =  2; sazba[0] = 79; 
  142.     limit[1]  =  3; sazba[1] = 82; 
  143.     limit[2]  =  4; sazba[2] = 85; 
  144.     limit[3]  =  5; sazba[3] = 88; 
  145.     limit[4]  =  6; sazba[4] = 91; 
  146.     limit[5]  =  7; sazba[5] = 94; 
  147.     limit[6]  =  8; sazba[6] = 97; 
  148.     limit[7]  =  9; sazba[7] = 100; 
  149.     limit[8]  = 10; sazba[8] = 103; 
  150.     limit[9]  = 12; sazba[8] = 106; 
  151.     limit[10] = 14; sazba[8] = 109; 
  152.     limit[11] = 16; sazba[8] = 121; 
  153.     
  154.     for (i = 0; i < pocet; i++)
  155.         if (hmotnost <= limit[i]) 
  156.         {
  157.             postovne += sazba[i];
  158.             i = pocet+1;    /* ukonΦenφ cyklu */
  159.         }
  160.  
  161.     return postovne;
  162. }
  163.  
  164. function HmotnostProfi (hmotnost, psc)
  165. {
  166.     var postovne = 0;
  167.   var limit = new Array();
  168.   var sazba = new Array();
  169.     var pocet = 12;
  170.     var i = 0;
  171.   var pasmo = psc / 100;
  172.  
  173.         /* definice sazeb */
  174.     limit[0]  =  2; sazba[0] = 64; 
  175.     limit[1]  =  3; sazba[1] = 67; 
  176.     limit[2]  =  4; sazba[2] = 70; 
  177.     limit[3]  =  5; sazba[3] = 73; 
  178.     limit[4]  =  6; sazba[4] = 76; 
  179.     limit[5]  =  7; sazba[5] = 79; 
  180.     limit[6]  =  8; sazba[6] = 82; 
  181.     limit[7]  =  9; sazba[7] = 85; 
  182.     limit[8]  = 10; sazba[8] = 88; 
  183.     limit[9]  = 12; sazba[8] = 91; 
  184.     limit[10] = 14; sazba[8] = 94; 
  185.     limit[11] = 16; sazba[8] = 106; 
  186.     
  187.     for (i = 0; i < pocet; i++)
  188.         if (hmotnost <= limit[i]) 
  189.         {
  190.             postovne += sazba[i];
  191.             i = pocet+1;    /* ukonΦenφ cyklu */
  192.         }
  193.  
  194.     return postovne;
  195. }
  196.  
  197. function CennyBalik (cena, hmotnost, dobirka, krehke)
  198. {
  199.     var postovne;
  200.     postovne = 0;
  201.     
  202.     /* sazba za dobirku podle jeho skuteΦnΘ ceny */
  203.     if (dobirka)
  204.         postovne = Dobirka (cena);
  205.  
  206.     /* sazba za balik podle hmotnosti */
  207.     postovne += HmotnostCenny (hmotnost);
  208.  
  209.     /* sazba za krehke baliky */    
  210.     if (krehke) 
  211.         postovne += 20;
  212.         
  213.     /* sazba za udanou cenu */
  214. /*    var mod = cena % 1000;
  215.     var div = (cena-mod)/1000; */
  216.     /* cena se poΦφtß za ka₧d² zapoΦat² tisφc, tj. 3001 je zapoΦat² 4. tisφc */
  217. /*    if (mod != 0) div++;    
  218.     postovne += (div*2);    */
  219.     if (cena < 5000)
  220.         postovne += 4;
  221.     else if (cena < 30000)
  222.         postovne += 10;
  223.     else {
  224.         var mod = (cena-30000) % 10000;
  225.         var div = (cena-30000-mod)/10000;
  226.         /* cena se poΦφtß za ka₧d² zapoΦat² desetitisφc, tj. 30001 je zapoΦat² 4. tisφc */
  227.         if (mod != 0) div++;    
  228.         postovne += (div * 10);    
  229.     }
  230.  
  231.     return postovne;
  232. }
  233.  
  234. function ObchodniProfiBalik (cena, hmotnost, dobirka, psc, profi, krehke)
  235. {
  236.     var postovne;
  237.     postovne = 0;
  238.  
  239.     /* sazba za balik podle hmotnosti */
  240.     if (profi)
  241.         postovne = HmotnostProfi (hmotnost, psc);
  242.     else
  243.         postovne = HmotnostObchodni (hmotnost, psc);
  244.     
  245.     if (postovne == 0)
  246.         return 0;
  247.  
  248.     /* sazba za dobirku podle jeho skuteΦnΘ ceny */
  249.     if (dobirka)
  250.         postovne += Dobirka (cena);
  251.  
  252.     /* sazba za krehke baliky */
  253.     if (krehke)
  254.         postovne += 20;
  255.  
  256.     /* sazba za udanou cenu */
  257.     if (cena > 30000)
  258.     {
  259.         cena=cena-30000;
  260.         var mod=(cena)%10000;
  261.         var div=(cena-mod)/10000;
  262.         if (mod != 0) div++;    
  263.         postovne += (div*10);    
  264.     }
  265.  
  266.     return postovne;
  267. }
  268.  
  269. function PostCalc(limit5000)
  270. {
  271.     var cena=document.PostaForm.cena.value;
  272.     var hmotnost=document.PostaForm.hmotnost.options [document.PostaForm.hmotnost.selectedIndex].value;
  273.     var dobirka=document.PostaForm.dobirka.status;
  274.     var krehke=document.PostaForm.krehke.status;
  275.     var psc=document.PostaForm.psc.value;
  276.     var postovne = CennyBalik (cena, hmotnost, dobirka, krehke);
  277.     var postovnePROFI = ObchodniProfiBalik (cena, hmotnost, dobirka, psc, 1, krehke);
  278.     var postovneOBCHOD = ObchodniProfiBalik (cena, hmotnost, dobirka, psc, 0, krehke);
  279.  
  280.     if (limit5000 && cena > 5000) 
  281.     {
  282.         document.PostaForm.postovne.value = "zdarma";
  283.         document.PostaForm.postovnePROFI.value = "zdarma";
  284.         document.PostaForm.postovneOBCHOD.value = "zdarma";
  285.         document.PostaForm.expedice.value = "zdarma";
  286.         document.PostaForm.dph.value = "zdarma";
  287.         document.PostaForm.celkem.value = RoundMoney (cena);
  288.         document.PostaForm.celkemPROFI.value = RoundMoney (cena);
  289.         document.PostaForm.celkemOBCHOD.value = RoundMoney (cena);
  290.     }
  291.         else
  292.     {
  293.         /* zkontroluje, jestli cena s dobφrkou nep°esßhla limitnφ hranice */
  294.         if (dobirka)
  295.         {
  296.             postovne += RozdilDobirky (postovne, cena);
  297.             postovnePROFI += RozdilDobirky (postovnePROFI, cena);
  298.             postovneOBCHOD += RozdilDobirky (postovneOBCHOD, cena);
  299.         }
  300.         
  301.         /* sazba za dobirku je stejna pro vsechny typy baliku */
  302.         document.PostaForm.postovne.value = RoundMoney (postovne);
  303.         document.PostaForm.postovnePROFI.value = RoundMoney (postovnePROFI);
  304.         document.PostaForm.postovneOBCHOD.value = RoundMoney (postovneOBCHOD);
  305.         
  306.         /* zaokrouhlenφ na nßsobky 5 */
  307.         mod=postovne%5;
  308.         var expedice=postovne+5-mod;
  309.     
  310.         document.PostaForm.expedice.value = RoundMoney (expedice);
  311.         
  312.         /* DPH 5% */
  313.         expedice=expedice*1.05;
  314.         document.PostaForm.dph.value = RoundMoney (expedice);
  315.         
  316.         /* cena celkem */
  317.         cena = parseFloat (cena);
  318.         expedice = expedice + cena + 0.5;
  319.         document.PostaForm.celkem.value = RoundMoney (Math.floor (expedice));
  320.         expedice = postovnePROFI + cena + 0.5;
  321.         document.PostaForm.celkemPROFI.value = RoundMoney (Math.floor (expedice));
  322.         expedice = postovneOBCHOD + cena + 0.5;
  323.         document.PostaForm.celkemOBCHOD.value = RoundMoney (Math.floor (expedice));
  324.     }
  325. }
  326. function CheckForm()
  327. {
  328. var err=false;
  329. var errmsg="";
  330. if (document.PosliForm.fname.value == "")
  331. {
  332. errmsg += "jmeno";
  333. err=true;
  334. }
  335. if (document.PosliForm.lname.value == "")
  336. {
  337. if (errmsg!="") errmsg += ", ";
  338. errmsg += "prijmeni";
  339. err=true;
  340. }
  341. if (document.PosliForm.ulice.value == "")
  342. {
  343. if (errmsg!="") errmsg += ", ";
  344. errmsg += "ulici a cislo popisne";
  345. err=true;
  346. }
  347. if (document.PosliForm.mesto.value == "")
  348. {
  349. if (errmsg!="") errmsg += ", ";
  350. errmsg += "mesto nebo obec";
  351. err=true;
  352. }
  353. if (document.PosliForm.psc.value == "")
  354. {
  355. if (errmsg!="") errmsg += ", ";
  356. errmsg += "PSC";
  357. err=true;
  358. }
  359. if (document.PosliForm.email.value == "")
  360. {
  361. if (errmsg!="") errmsg += ", ";
  362. errmsg += "e-mail";
  363. err=true;
  364. }
  365. if (document.PosliForm.prevzeti.value == "")
  366. {
  367. if (errmsg!="") errmsg += ", ";
  368. errmsg += "zpusob prevzeti";
  369. err=true;
  370. }
  371. if (err)
  372. {
  373. alert ("Pred odeslanim objednavky prosim vyplnte tyto chybejici udaje: \n\n" + errmsg);
  374. return false;
  375. }
  376. alert (document.PosliForm.prevzeti.value);
  377. alert (document.PosliForm.email.value);    
  378. if (document.PosliForm.prevzeti.value == "dobirka" || document.PosliForm.prevzeti.value == "dobirkaPROFI")
  379. {
  380. return confirm ("Potvrzenφm tohoto dotazu bude odeslßna zßvaznß objednßvka na Vßmi vybranΘ zbo₧φ.\n\nJako zp∙sob platby jste si zvolili formu DOB═RKOU, tj. zbo₧φ Vßm bude zaslßno na udanou adresu a platba za n∞j bude realizovßna p°i jeho p°evzetφ (doma, v prßci nebo na poÜt∞).\n\nSouhlasφte s odeslßnφm zßvaznΘ objednßvky? Stiskem tlaΦφtka OK objednßvku odeÜlete. Stiskem tlaΦφtka Cancel se vrßtφte zp∞t na objednßvkov² formulß°.");
  381. }
  382.   else
  383. if (document.PosliForm.prevzeti.value == "proforma-postou" || document.PosliForm.prevzeti.value == "proformaPROFI")
  384. {
  385. return confirm ("Potvrzenφm tohoto dotazu bude odeslßna zßvaznß objednßvka na Vßmi vybranΘ zbo₧φ.\n\nJako zp∙sob platby jste si zvolili formu PROFORMA FAKTUROU, tj. bude Vßm e-mailem zaslßna proforma faktura na vybranΘ zbo₧φ a po jejφm uhrazenφ Vßm zbo₧φ bude zaslßno na udanou adresu bez dalÜφch poplatk∙.\n\nSouhlasφte s odeslßnφm zßvaznΘ objednßvky? Stiskem tlaΦφtka OK objednßvku odeÜlete. Stiskem tlaΦφtka Cancel se vrßtφte zp∞t na objednßvkov² formulß°.");
  386. }
  387.   else
  388. if (document.PosliForm.prevzeti.value == "proforma-osobne")
  389. {
  390. return confirm ("Potvrzenφm tohoto dotazu bude odeslßna zßvaznß objednßvka na Vßmi vybranΘ zbo₧φ.\n\nJako zp∙sob platby jste si zvolili formu PROFORMA FAKTUROU, tj. bude Vßm e-mailem zaslßna proforma faktura na vybranΘ zbo₧φ a po jejφm uhrazenφ si budete moci zbo₧φ u nßs vyzvednout.\n\nSouhlasφte s odeslßnφm zßvaznΘ objednßvky? Stiskem tlaΦφtka OK objednßvku odeÜlete. Stiskem tlaΦφtka Cancel se vrßtφte zp∞t na objednßvkov² formulß°.");
  391. }
  392.   else
  393. if (document.PosliForm.prevzeti.value == "osobne")
  394. {
  395. return confirm ("Potvrzenφm tohoto dotazu bude odeslßna zßvaznß objednßvka na Vßmi vybranΘ zbo₧φ.\n\nJako zp∙sob p°evzetφ jste si zvolili formu OSOBN╠, tj. jakmile Vßm potvrdφme p°ipravenost objednanΘho zbo₧φ, budete si je moci u nßs vyzvednout a zaplatit v hotovosti.\n\nSouhlasφte s odeslßnφm zßvaznΘ objednßvky? Stiskem tlaΦφtka OK objednßvku odeÜlete. Stiskem tlaΦφtka Cancel se vrßtφte zp∞t na objednßvkov² formulß°.");
  396. }
  397.   else
  398. return confirm ("Potvrzenφm tohoto dotazu bude odeslßna zßvaznß objednßvka na Vßmi vybranΘ zbo₧φ.\n\nJako zp∙sob p°evzetφ jste si zvolili JIN▌, tj. prosφm uve∩te VaÜe p°ßnφ do poznßmky.\n\nSouhlasφte s odeslßnφm zßvaznΘ objednßvky? Stiskem tlaΦφtka OK objednßvku odeÜlete. Stiskem tlaΦφtka Cancel se vrßtφte zp∞t na objednßvkov² formulß°.");
  399. }
  400.  
  401. function CheckFormSubscribe()
  402. {
  403. var err=false;
  404. if (document.PosliForm.email.value == "")
  405. {
  406. alert ("Pred odeslanim registrace prosim vyplnte e-mail!");
  407. return false;
  408. }
  409. SetCookie("emailsub",document.PosliForm.email.value);
  410. return true;
  411. }
  412. function PrepocitejSlevuMinolta()
  413. {
  414.     var beznaCelkem = 0, akcniCelkem = 0;
  415.     var beznaCena, akcniCena, Mnozstvi;
  416.     for (i = 1; i <= 13; i++)
  417.     {
  418.         beznaCena = document.PosliForm.elements["M"+i+"cx"].value;
  419.         akcniCena = document.PosliForm.elements["M"+i+"c"].value;
  420.         Mnozstvi = document.PosliForm.elements["M"+i+"ks"].value;
  421.         if (document.PosliForm.elements["M"+i].status==1)
  422.         {
  423.             if (Mnozstvi==0)
  424.             {
  425.                 document.PosliForm.elements["M"+i+"ks"].value = 1;
  426.                 Mnozstvi=1;
  427.             }
  428.             beznaCelkem += beznaCena * Mnozstvi;
  429.             akcniCelkem += akcniCena * Mnozstvi;
  430.         }
  431.             else
  432.         document.PosliForm.elements["M"+i+"ks"].value = 0;
  433.     }
  434.     document.PosliForm.beznaCena.value = beznaCelkem;
  435.     document.PosliForm.akcniCena.value = akcniCelkem;
  436.     if (akcniCelkem >= 18000)
  437.         document.PosliForm.sleva.value = beznaCelkem - akcniCelkem;
  438.     else
  439.         document.PosliForm.sleva.value = 0;
  440. }
  441.