Hipekhop

Untitled

Mar 9th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //https://bilet.intercity.pl/eic_js/zakup_biletu_plugin.js
  2.  
  3.  
  4. $.fn.zakupBiletu = function(options) {
  5.     var zakup_biletu_form = $("#zakup_biletu_form");
  6.     var nr_biletu_osoby_towarzyszacej = $("#nr_biletu_osoby_towarzyszacej");          
  7.     var rodzaj_wagonu = $("#rodzaj_wagonu");    
  8.     var dalej_button = $(".dalej_button");    
  9.     var klasa_wagonu = $("#klasa_wagonu");
  10.     var tryb_posel = $("#tryb_posel");
  11.     var przesiadkaPrev = $(".przesiadka_prev");
  12.     var przesiadkaNext = $(".przesiadka_next");    
  13.     var arrow_box_ext_info = $(".arrow_box_ext_info");
  14.  
  15.     var nextStepPrzesiadka = 0;
  16.     var ODCINEK = {
  17.         PIERWSZY : 1,
  18.         DRUGI : 2              
  19.     };
  20.    
  21.     // events
  22.     dalej_button.unbind('click').click(function (e) {
  23.  
  24.       var self = $(this);
  25.  
  26.       var strefaCiszyArr = [52, 11];
  27.       var dlaPodrzDzieckiDoLat6Arr = [3];
  28.       var rowerOferta = 15;
  29.       var SIEDZACE = 1;
  30.  
  31.       var rodzajWagonu = parseInt($("#rodzaj_wagonu").find("option:selected").val());            
  32.       var rodzajWagonuOdcinek_1 = parseInt($("#rodzaj_wagonu_odcinek_2").val());
  33.       var rower = $("#rodzaj_wagonu").find("option:selected").val();
  34.       var krajowy = self.attr("krajowy");
  35.       var kat_poc = self.attr("kat_poc");            
  36.       var is_bilet_rodzinny=$("#bilet_rodzinny").is(":checked");
  37.       var is_przesiadka_zakupowa = ParamUtil.parseBoolean(self.attr("przesiadka"));
  38.            
  39.       if(!validMiejsceSasiadujaceWskazane(ODCINEK.PIERWSZY)) {
  40.           return; // blokujemy przycisk Dalej
  41.       }
  42.      
  43.       if(!validNrBiletuOsobyTowarzyszacej()) {
  44.           return;
  45.       }
  46.      
  47.       var v1=$("#dalej_modal_ok").attr("v1");
  48.       var v2=$("#dalej_modal_ok").attr("v2");
  49.       var v3=$("#dalej_modal_ok").attr("v3");            
  50.       var v4=$("#dalej_modal_ok").attr("v4");            
  51.      
  52.       var dalej_modal_false=true;
  53.       var dalej_modal_atention=false;
  54.       var dalej_modal_bilet_pies_caly_przedzial = false;
  55.       var dalej_modal_jedno_lozko_dziecko_opiekun = false;
  56.      
  57.  
  58.       $('.dalej_modal').each(function (index) {
  59.           $(this).hide();
  60.       });
  61.  
  62.       var openModal = false;
  63.  
  64.       if (krajowy) {                
  65.  
  66.           // strefa ciszy
  67.           if ((strefaCiszyArr.indexOf(rodzajWagonu) > -1 || strefaCiszyArr.indexOf(rodzajWagonuOdcinek_1) > -1) && !is_przesiadka_zakupowa) {
  68.               openModal = true;
  69.               $("#dalej_modal_strefa_ciszy").show();
  70.               $("#dalej_modal_ok").val(v1);
  71.           }
  72.  
  73.           // dla dziecka do lat 6
  74.           if(nextStepPrzesiadka == 0) {
  75.             if (dlaPodrzDzieckiDoLat6Arr.indexOf(rodzajWagonu) > -1 && !BilDodatkoweService().czyNieWybranoCalegoPrzedzialuDlaPsa()) {
  76.  
  77.                 var ile_osob = Number($("#liczba_n").find("option:selected").val()) + Number($("#liczba_u").find("option:selected").val()) + Number($("#liczba_u_2").find("option:selected").val());
  78.                 if (ile_osob>=2) {
  79.                     if (kat_poc != 81 || ile_osob <= 4) {
  80.                         openModal = true;
  81.                         $("#dalej_modal_dla_podr_z_dzieckiem_do_lat_6").show();
  82.                         $("#dalej_modal_ok").val(v1);
  83.                     }
  84.                 }
  85.             }
  86.         }
  87.  
  88.           // bilet rodzinny
  89.           if (is_bilet_rodzinny) {
  90.              
  91.               var usluga_id = parseInt($(".rodzaj_miejsca:checked").val());
  92.               var container_id = (usluga_id == SIEDZACE) ? 1 : 2;
  93.               var usluga_wrapper = $("#rodzaj_ulgi_wrap_" + container_id);
  94.              
  95.               var liczba_n =  $("#liczba_n").val();
  96.               var kod_znizki = usluga_wrapper.find("#kod_znizki").val();              
  97.               var liczba_u = $("#liczba_u").val();
  98.  
  99.               var kod_znizki_2 = usluga_wrapper.find("#kod_znizki_2").val();
  100.               var liczba_u_2 = $("#liczba_u_2").val();
  101.  
  102.               var ile_osob = Number(liczba_n) + Number(liczba_u) + Number(liczba_u_2);
  103.  
  104.               if (liczba_n == 0 && (Number(liczba_u) + Number(liczba_u_2)) > 0)
  105.               {
  106.                   openModal = true;
  107.                   dalej_modal_false=false;
  108.                   $("#dalej_modal_bilet_rodzinny_bledna_liczba_osob").show();
  109.                   $("#dalej_modal_ok").val(v3);
  110.  
  111.               }
  112.               else
  113.               {  
  114.                   if ((liczba_u > 0 && kod_znizki == 77) || (liczba_u_2 > 0 && kod_znizki_2 == 77) || ile_osob < 2 || ile_osob > 5)
  115.                   {
  116.  
  117.                   }
  118.                   else if (liczba_n >= 2 || (liczba_u > 0 && kod_znizki > 1) || (liczba_u_2 > 0 && kod_znizki_2 > 1))
  119.                   {
  120.                       openModal = true;                            
  121.                       $("#dalej_modal_bilet_rodzinny").show();
  122.                       $("#dalej_modal_ok").val(v2);
  123.                   }
  124.  
  125.  
  126.                   if (strefaCiszyArr && $("#dalej_modal_strefa_ciszy").is(":visible") && $("#dalej_modal_bilet_rodzinny").is(":visible"))
  127.                   {
  128.                       $("#dalej_modal_strefa_ciszy").hide();
  129.                       $("#dalej_modal_bilet_rodzinny").hide();
  130.                       $("#dalej_modal_bilet_rodzinny_strefa_ciszy").show();
  131.                       $("#dalej_modal_ok").val(v2);
  132.                   }
  133.               }
  134.           }
  135.  
  136.           /*** oblsuga modala dla pracownikow kolei ***/
  137.           var ILOSC_OSOB_PRACOWNIK_KOLEI = 1; // dla 1 normalny submit, powyżej 1 pokazujemy modala
  138.           if(iloscZaznaczonychZnizekPracownikKolei() > ILOSC_OSOB_PRACOWNIK_KOLEI) {
  139.               openModal = true;
  140.               $("#dalej_modal_pracownik_kolei").show();
  141.           }
  142.          
  143.          
  144.           if(BilDodatkoweService().czyNieWybranoCalegoPrzedzialuDlaPsa()) {  
  145.               openModal = true;
  146.               dalej_modal_bilet_pies_caly_przedzial = true;
  147.           }
  148.          
  149.           if(czyWybranoWspolneUsytuowanieNaJednymLozkuDzieckoOpiekun()) {
  150.               openModal = true;
  151.               dalej_modal_jedno_lozko_dziecko_opiekun = true;              
  152.           }
  153.          
  154.              
  155.  
  156.       } // end krajowy
  157.  
  158.       if ($(".bilet_dodatkowy").length > 0) {
  159.           $(".bilet_dodatkowy").each(function (idx, obj) {
  160.  
  161.               var activeOption = $(obj).find("option:selected").val();                    
  162.               if (parseInt(activeOption) == rowerOferta && !is_bilet_rodzinny) {
  163.                   openModal = false;
  164.               }
  165.  
  166.           });
  167.       }
  168.  
  169.       if ($(this).attr("przesiadka") == "true")
  170.       {                
  171.           var kat_1=$(this).attr("kat_1");
  172.           var kat_2=$(this).attr("kat_2");          
  173.  
  174.           if (kat_1!=kat_2)
  175.           {
  176.               if(czyZnalezionoZnizkiKolejarza()) {
  177.                   openModal=true;
  178.                   dalej_modal_atention=true;                  
  179.               }
  180.           }
  181.       }
  182.  
  183.       if (openModal && (nextStepPrzesiadka == 0))
  184.       {  
  185.           var modalService = new OknoModalneService();
  186.          
  187.           if (dalej_modal_atention) {    
  188.               modalService.dalejModalAtention();              
  189.              
  190.           }else if(dalej_modal_bilet_pies_caly_przedzial) {                                          
  191.               modalService.dalejModalBiletPiesCalyPrzedzial();              
  192.              
  193.           }else if(dalej_modal_jedno_lozko_dziecko_opiekun) {
  194.               modalService.dalejModalJednoLozkoDzieckoOpiekun();
  195.              
  196.           }else if (dalej_modal_false) {                                
  197.               modalService.dalejModalFalse();
  198.              
  199.           }else{
  200.               modalService.dalejModalDefault();
  201.           }          
  202.          
  203.           // w przypadku przesiadki podmieniamy dla modala submita na button
  204.           if(is_przesiadka_zakupowa) {
  205.              
  206.               $("#dalej_modal_ok").attr("type","button").unbind('click').click(function(event) {                                        
  207.                    
  208.                     nextStepPrzesiadka++;                        
  209.                     przesiadkiService(nextStepPrzesiadka);                            
  210.                     $(this).okienkoModalne().close();                
  211.               });
  212.              
  213.           }
  214.          
  215.           $(this).okienkoModalne().open();
  216.          
  217.       }else if(is_przesiadka_zakupowa) {
  218.          
  219.           if(nextStepPrzesiadka == 0) { // odcinek 1
  220.              
  221.               if(ObslugaKlopotliwychZnizek().validate(this)) {
  222.                     return;
  223.               }
  224.               informacja_pasazerska($(this).attr("nr_poc_2"), $(this).attr("data_odj_2"), $(this).attr("lang"));                            
  225.              
  226.               nextStepPrzesiadka++;
  227.               przesiadkiService(nextStepPrzesiadka);                                      
  228.               return;                    
  229.              
  230.          
  231.           } else if(nextStepPrzesiadka == 1) { // odcinek 2
  232.                
  233.               if(ObslugaKlopotliwychZnizek().validate(this)) {
  234.                     return;
  235.               }
  236.               if (strefaCiszyArr.indexOf(rodzajWagonuOdcinek_1) > -1) {
  237.  
  238.                 prepareStrefaCiszyPrzesiadkiModal().unbind('click').click(function(event) {                        
  239.  
  240.                     nextStepPrzesiadka++;                        
  241.                     przesiadkiService(nextStepPrzesiadka);                            
  242.  
  243.                     if(nextStepPrzesiadka > 1) {
  244.                          document.forms['zakup_biletu_form'].submit();
  245.                     }
  246.  
  247.                 });
  248.  
  249.                 $(this).okienkoModalne().open();                                
  250.                 return;
  251.              }
  252.          
  253.             if(czyWybranoDlaPodroznychZDziecmiDoLat6(this, dlaPodrzDzieckiDoLat6Arr, kat_poc)) {
  254.                 return;
  255.             }
  256.              
  257.             if(!validMiejsceSasiadujaceWskazane(ODCINEK.DRUGI)) {
  258.                 return; // blokujemy przycisk Dalej
  259.             }                    
  260.  
  261.             document.forms['zakup_biletu_form'].submit();
  262.              
  263.           }
  264.          
  265.       }else {  
  266.          
  267.           document.forms['zakup_biletu_form'].submit();
  268.       }
  269.  
  270.  
  271.  
  272.   });
  273.  
  274.   // przesiadki events
  275.   przesiadkaPrev.click(function(event) {
  276.       informacja_pasazerska($(this).attr("nr_poc_1"), $(this).attr("data_odj_1"), $(this).attr("lang"));
  277.       nextStepPrzesiadka = 0;
  278.      
  279.       var przesiadka = new PrzesiadkiZakupowe();
  280.       przesiadka.setIndexPrzesiadki(nextStepPrzesiadka);
  281.       przesiadka.odblokujPolaDlaPrzesiadkiZakupowej();            
  282.       przesiadka.aktywujDeaktywujElementy();    
  283.      
  284.       $().obslugaUlgi().obslugaWieluZnizek();
  285.  
  286.   });
  287.  
  288.  
  289.   przesiadkaNext.click(function(event) {
  290.  
  291.      var przesiadka = new PrzesiadkiZakupowe();          
  292.  
  293.      if(nextStepPrzesiadka == 0) {              
  294.         nextStepPrzesiadka++;              
  295.         przesiadka.setIndexPrzesiadki(nextStepPrzesiadka);          
  296.         przesiadka.aktywujDeaktywujElementy();                            
  297.  
  298.      }
  299.      przesiadka.zablokujPolaDlaPrzesiadkiZakupowej();
  300.  
  301.   });
  302.  
  303.   arrow_box_ext_info.toggleClick(function() {              
  304.  
  305.       $(this).closest(".data_box_section").find(".data_box_rwd").removeClass("data_box_hide").addClass("data_box_show");
  306.       $(this).removeClass('arrow_box_down').addClass('arrow_box_up');
  307.  
  308.   }, function() {            
  309.        $(this).closest(".data_box_section").find(".data_box_rwd").removeClass("data_box_show").addClass("data_box_hide");
  310.        $(this).removeClass('arrow_box_up').addClass('arrow_box_down');
  311.  
  312.    });
  313.  
  314.     zakup_biletu_form.submit(function() {      
  315.      
  316.         // obsluga ulgi 100% Dla dziecka do lat 4              
  317.         if(nr_biletu_osoby_towarzyszacej.is(':visible')) {                                  
  318.             if(nr_biletu_osoby_towarzyszacej.val().trim().length == 0) {
  319.                 nr_biletu_osoby_towarzyszacej.next().show();                  
  320.                   return false;
  321.             }
  322.         }
  323.  
  324.         /*********************/
  325.  
  326.  
  327.           return true;
  328.  
  329.     });
  330.  
  331.       rodzaj_wagonu.change(function () {
  332.           var kod_wagonu = $(this).find("option:selected").attr("value");
  333.           rodzajWagonuOpis(kod_wagonu);
  334.           sprawdzRowerRodzajWagonu();
  335.           usunInformacjeWstepnaDlaPrzedzialDzieckoDo6Lat();
  336.  
  337.       });
  338.  
  339.       klasa_wagonu.change(function() {
  340.           if(tryb_posel.length == 0) {                    
  341.               ustawKlasaWagonu();                                    
  342.           }                
  343.       //    dzieckoDoLat6();
  344.  
  345.       });
  346.  
  347.     function iloscZaznaczonychZnizekPracownikKolei() {
  348.  
  349.         //PRACOWNIK_KOLEI : 40, EMERYT_RENCISTA_KOLEI : 41, PRACOWNIK_KOLEI_RODZINA : 42, PRACOWNIK_KOLEI_ZAPLECZE_TECHNICZNE : 44
  350.         var pracownik_kolei_znizki = [40, 41, 42, 44];
  351.         var kod_znizki_arr = ["kod_znizki", "kod_znizki_2", "kod_znizki_3"];
  352.         var ilosc_arr = ["liczba_u", "liczba_u_2", "liczba_u_3"];
  353.  
  354.         var laczna_ilosc_osob_pracownik_kolei = 0;
  355.         $.each(kod_znizki_arr ,function(idx, elem) {                                    
  356.  
  357.             var zaznaczona_znizka = parseInt($("#"+elem).find("option:selected").val());                  
  358.  
  359.             if (pracownik_kolei_znizki.indexOf(zaznaczona_znizka) > -1) {                      
  360.  
  361.                 var liczba_u_elem = ilosc_arr[idx];                      
  362.                 var liczba_u_ilosc = parseInt($("#"+liczba_u_elem).find("option:selected").val());
  363.                 laczna_ilosc_osob_pracownik_kolei += liczba_u_ilosc;
  364.  
  365.             }
  366.         });    
  367.  
  368.         return laczna_ilosc_osob_pracownik_kolei;
  369.  
  370.     }
  371.  
  372.  
  373.     function przesiadkiService(nextStepPrzesiadka) {
  374.        
  375.         var przesiadka = new PrzesiadkiZakupowe();                              
  376.         przesiadka.setIndexPrzesiadki(nextStepPrzesiadka);                    
  377.         przesiadka.zablokujPolaDlaPrzesiadkiZakupowej();                            
  378.         przesiadka.aktywujDeaktywujElementy();    
  379.        
  380.         ObslugaKlopotliwychZnizek().pokazKomunikatRozneKatPoc_Eip_TLK();
  381.  
  382.     }
  383.    
  384.     function prepareStrefaCiszyPrzesiadkiModal() {
  385.          
  386.           $("#dalej_modal_inform").hide();                        
  387.           $("#dalej_modal_strefa_ciszy").show();
  388.           $("#dalej_modal_footer").show();    
  389.          
  390.           var modal = $("#dalej_modal_ok");
  391.                    
  392.           var v1=modal.attr("v1");              
  393.           modal.val(v1);
  394.           modal.attr("type","button");                        
  395.           modal.addClass("js-modal-close");
  396.          
  397.           return modal;
  398.          
  399.       }
  400.  
  401.     function validMiejsceSasiadujaceWskazane(odcinek) {              
  402.  
  403.         var MIEJSCE = {
  404.             ZAJETE : "rezerwacja_obok_miejsca_juz_zajetego",
  405.             WSKAZANE : "rezerwacja_miejsca_wskazanego"              
  406.         };
  407.  
  408.         var isWrongFormat = function(odcinek) {
  409.  
  410.             var elementy_nr = ["numer_wagonu", "numer_miejsca"];                                    
  411.             var flag = false;
  412.  
  413.             $.each(elementy_nr ,function(idx, elem) {                                                                                
  414.                 var idx = (odcinek > 1) ? "_" + odcinek : "";                      
  415.                 var input = $("#" + elem + idx);                                
  416.                 if(input.val().length > 0) {                                                    
  417.                     if (!input.val().match(/^\d+$/)) {                                                        
  418.                         input.addClass("error_input").closest(".form_wrapper_input").find(".error_info_wskazane_zajete").removeClass("display-hide");
  419.                         flag = true;
  420.                     }else {                              
  421.                         input.removeClass("error_input").closest(".form_wrapper_input").find(".error_info_wskazane_zajete").addClass("display-hide");
  422.                     }
  423.                 }                  
  424.             });                  
  425.  
  426.  
  427.             return flag;
  428.  
  429.         };
  430.  
  431.         var idx = (odcinek > 1) ? "_" + odcinek : "";              
  432.  
  433.         if($("#" + MIEJSCE.ZAJETE).is(":checked") || $("#" + MIEJSCE.WSKAZANE + idx).is(":checked")) {                                    
  434.           return !isWrongFormat(odcinek);                      
  435.         }                  
  436.  
  437.          return true;
  438.  
  439.         };
  440.        
  441.        
  442.         function czyWybranoWspolneUsytuowanieNaJednymLozkuDzieckoOpiekun() {
  443.            
  444.             var BEZ_ZNIZKI = 1;
  445.             var znizkiDzieciMlodziez = [71, 77, 78];
  446.            
  447.             var liczba_lozek = $("#llozek");
  448.             var liczba_n = $("#liczba_n");
  449.            
  450.             var kod_znizki_arr = ["kod_znizki", "kod_znizki_2", "kod_znizki_3"];
  451.             var liczba_u_arr = ["liczba_u", "liczba_u_2", "liczba_u_3"];
  452.             var liczba_doroslych = 0;
  453.             var liczba_dzieci = 0;
  454.            
  455.             if(liczba_lozek.is(":visible")) {
  456.                
  457.                 liczba_doroslych += parseInt(liczba_n.val());
  458.                
  459.                 $.each(kod_znizki_arr, function(idx, elem) {
  460.                    
  461.                     var kod_znizka = parseInt($("#" + elem).val());
  462.                     var liczba_u = parseInt($("#" + liczba_u_arr[idx]).val());
  463.                    
  464.                     if (znizkiDzieciMlodziez.indexOf(kod_znizka) > -1) {                                              
  465.                         liczba_dzieci += liczba_u;
  466.                     }else if(kod_znizka != BEZ_ZNIZKI) {
  467.                         liczba_doroslych += liczba_u;
  468.                     }
  469.                    
  470.                 });
  471.                
  472.                 var liczba_osob_ogolem = liczba_dzieci + liczba_doroslych;
  473.  
  474.                 if(liczba_osob_ogolem > parseInt(liczba_lozek.val())) {                    
  475.                     return true;
  476.                 }
  477.                
  478.             }
  479.            
  480.             return false;
  481.         }
  482.        
  483.        
  484.         function czyWybranoDlaPodroznychZDziecmiDoLat6(inputref, dlaPodrzDzieckiDoLat6Arr, katPoc) {
  485.            
  486.             var flag = false;
  487.             var rodzaj_wagonu_odcinek_2 = parseInt($("#rodzaj_wagonu_odcinek_2").find("option:selected").val());                                    
  488.            
  489.             if (dlaPodrzDzieckiDoLat6Arr.indexOf(rodzaj_wagonu_odcinek_2) > -1) {
  490.              
  491.                 var ile_osob = 0;
  492.                 var ids_liczba_osob_arr = ["liczba_n", "liczba_u_2_1", "liczba_u_2_2"];
  493.  
  494.                 $(ids_liczba_osob_arr).each(function(idx, elem) {
  495.                     ile_osob += parseInt($("#" + elem).find("option:selected").val());
  496.                 });
  497.  
  498.                 if (ile_osob>=2) {                
  499.                     if (katPoc != 81 || ile_osob <= 4) {
  500.                        
  501.                         $(".dalej_modal").hide();
  502.                         $("#dalej_modal_inform").hide();                        
  503.                         $("#dalej_modal_dla_podr_z_dzieckiem_do_lat_6").show();
  504.                         $("#dalej_modal_footer").show();    
  505.                        
  506.                         var modal = $("#dalej_modal_ok");
  507.                         var v1=modal.attr("v1");              
  508.                         modal.val(v1);
  509.                         modal.attr("type","button");                        
  510.                         modal.addClass("js-modal-close").unbind('click').click(function(event) {                        
  511.                             document.forms['zakup_biletu_form'].submit();    
  512.                         });                        
  513.                        
  514.                         flag = true;
  515.                        
  516.                         $(inputref).okienkoModalne().open();                                
  517.                        
  518.                      }
  519.                 }
  520.  
  521.              }
  522.          
  523.             return flag;
  524.            
  525.         }
  526.              
  527.         function validNrBiletuOsobyTowarzyszacej() {
  528.            
  529.             var nr_biletu_osoby_towarzyszacej = $("#nr_biletu_osoby_towarzyszacej");
  530.             var nr_osoba_towarz_error = $(".nr_osoba_towarz_error");
  531.             var regex = /^[0-9]+$/;
  532.             var isPoprawny = true;
  533.            
  534.             if(nr_biletu_osoby_towarzyszacej.is(':visible')) {                                  
  535.                 if(nr_biletu_osoby_towarzyszacej.val().trim().length == 0 || !regex.test(nr_biletu_osoby_towarzyszacej.val())) {
  536.                       nr_osoba_towarz_error.find("span").show();                  
  537.                       isPoprawny = false;
  538.                 }else {
  539.                     nr_osoba_towarz_error.find("span").hide();
  540.                     isPoprawny = true;
  541.                 }
  542.             }
  543.            
  544.             return isPoprawny;
  545.         }
  546.        
  547.        
  548.         function czyZnalezionoZnizkiKolejarza() {
  549.            
  550.             var znizkaKolejarzPracownikIEmeryt = [40, 41];
  551.             var znizkaKolejarzRodzina = [42, 44];      
  552.            
  553.             //Badanie czy wybrano zniżki kolejarsie oraz inne
  554.               var znizki_arr = ["kod_znizki", "kod_znizki_2", "kod_znizki_3", "kod_znizki_2_1", "kod_znizki_2_2", "kod_znizki_2_3"];
  555.               var znalezionoZnizkaKolejarzRodzina = false;
  556.               var znalezionoZnizkaKolejarzPracownikIEmeryt = false;              
  557.              
  558.               $.each(znizki_arr, function (key, elem) {
  559.                   var zaznaczona_znizka = parseInt($("#" + elem).find(":selected").val());
  560.  
  561.                   if (znizkaKolejarzRodzina.indexOf(zaznaczona_znizka) > -1) {
  562.                       znalezionoZnizkaKolejarzRodzina = true;
  563.                   }
  564.                   if (znizkaKolejarzPracownikIEmeryt.indexOf(zaznaczona_znizka) > -1) {
  565.                       znalezionoZnizkaKolejarzPracownikIEmeryt = true;
  566.                   }
  567.                  
  568.               });
  569.              
  570.               return (znalezionoZnizkaKolejarzRodzina && znalezionoZnizkaKolejarzPracownikIEmeryt);
  571.              
  572.         }
  573.        
  574.    
  575.  
  576.     function PrzesiadkiZakupowe(){
  577.  
  578.         var elementyOnChange = "#zakup_biletu_form input[type='checkbox'], #zakup_biletu_form input[type='radio'], #zakup_biletu_form select";              
  579.         var elementy = {                  
  580.             id : ["tr_rodzaj_miejsca","tr_promocja", "tr_liczba_osob_n", "tr_kod_znizki", "tr_kod_znizki_2", "tr_kod_znizki_3",
  581.                   "tr_nr_taryfy_II", "tr_nr_taryfy_I", "tr_przedzial", "tr_plec", "tr_klasa",
  582.                   "tr_kolorowa_karta_ic", "tr_pokaz_kolorowa_karte", "tr_bilety_dodatkowe"],
  583.             klasa : ["bilet_karta_rodziny_main_wrapper"]
  584.         };
  585.  
  586.  
  587.         this.indexPrzesiadki = 0;
  588.  
  589.         var odcinek = {PIERWSZY : 0, DRUGI:1};              
  590.  
  591.         this.zablokujPolaDlaPrzesiadkiZakupowej = function() {                  
  592.  
  593.             var  elementsToShow = [
  594.                 ".submit_powrot_zakup_biletu",
  595.                 ".dalej_button",
  596.                 ".przesiadka_info_parametry",
  597.                 "#rodzaj_wagonu_odcinek_2",
  598.                 "#usytuowanie_przesiadka_1"
  599.  
  600.             ];
  601.  
  602.               // blokujemy KDR, BR
  603.               $(".opcja_biletu_rodzinny").each(function() {
  604.  
  605.                   var self = $(this);
  606.  
  607.                   if(self.is(":checked")) {
  608.                       _addInputKDFiBR(self, 1);                      
  609.                   }else {
  610.                       _addInputKDFiBR(self, 0);
  611.                   }
  612.  
  613.               });
  614.  
  615.               $("#pokaz_kolorowa_karte").attr('disabled',true);
  616.  
  617.               // blokujemy usługi (siedzace, sypialne kuszetka)
  618.               $(".rodzaj_miejsca").each(function(idx) {
  619.  
  620.                   var self = $(this);
  621.                   if(!self.is(":checked")) {
  622.                       self.attr('disabled',true);                                        
  623.                   }                        
  624.               });
  625.  
  626.  
  627.               // usuwamy X z biletów dodatkowych
  628.               $(".remove_additional_ticket").each(function(idx) {
  629.                   var self = $(this);
  630.                   self.hide();                        
  631.               });
  632.  
  633.               _ustawMiejsceZajeteWskazaneMIejsce(false);                    
  634.               _pokazUkryjElementyDlaPrzesiadek(elementy, false);                    
  635.  
  636.               $.each(elementsToShow, function(key, elem) {                        
  637.                   $(elem).show();                              
  638.               });
  639.  
  640.               $("#rodzaj_wagonu, #usytuowanie").hide();
  641.  
  642.               this.obslugaZnizkeDlaPrzesiadki();
  643.               $("#tr_pokaz_karte_duzej_rodziny").hide();
  644.               $("#tr_pokaz_bilet_rodzinny").hide();
  645.  
  646.  
  647.  
  648.         };
  649.  
  650.         this.odblokujPolaDlaPrzesiadkiZakupowej = function() {
  651.  
  652.             var elementsToHide = [
  653.                 ".submit_powrot_zakup_biletu",
  654.                 ".przesiadka_info_parametry",
  655.                 "#rodzaj_wagonu_odcinek_2",
  656.                 "#usytuowanie_przesiadka_1",
  657.                 "#tr_liczba_osob_n_2",
  658.                 "#liczba_u_2_1",
  659.                 "#liczba_u_2_2",
  660.                 "#liczba_u_2_3"
  661.             ];
  662.  
  663.             var elementsToShow = ["#liczba_u", "#liczba_u_2", "#liczba_u_3"];
  664.  
  665.             // usuwamy blokade  dla wszystkich elementow                  
  666.             /*
  667.             $(".opcja_biletu_rodzinny").each(function() {
  668.               var self = $(this);                    
  669.  
  670.             });
  671.             */
  672.               // uswamy fake dla KDR i BR                    
  673.               _removeInputKDRiBR();
  674.  
  675.               $("#pokaz_kolorowa_karte").attr('disabled',false);
  676.  
  677.               // odblokujemy usługi (siedzace, sypialne kuszetka)
  678.               $(".rodzaj_miejsca").each(function(idx) {
  679.  
  680.                   var self = $(this);
  681.                   self.attr('disabled',false);                                      
  682.  
  683.               });
  684.  
  685.               // usuwamy X z biletów dodatkowych
  686.               $(".remove_additional_ticket").each(function(idx) {
  687.                   var self = $(this);
  688.                   self.show();                        
  689.               });
  690.  
  691.  
  692.               _ustawMiejsceZajeteWskazaneMIejsce(true);
  693.              _pokazUkryjElementyDlaPrzesiadek(elementy, true);                  
  694.  
  695.  
  696.              $.each(elementsToHide, function(key, elem) {                        
  697.                 $(elem).hide();                    
  698.              });                  
  699.  
  700.              $.each(elementsToShow, function(key, elem) {                        
  701.                 $(elem).removeClass("przesiadka_hide_elem");                    
  702.              });
  703.  
  704.              $("#rodzaj_wagonu, #usytuowanie").show();        
  705.  
  706.              this.obslugaZnizkeDlaPrzesiadki();                  
  707.  
  708.         };
  709.  
  710.         this.aktywujDeaktywujElementy = function() {
  711.  
  712.           var indexPrzesiadki = this.getindexPrzesiadki();
  713.  
  714.           $(".przesiadka_linia_wrapper").each(function(index) {
  715.  
  716.              var self = $(this);
  717.  
  718.              if(index == indexPrzesiadki) {
  719.                  self.removeClass("przesiadka_linia_deactive").addClass("przesiadka_linia_active");
  720.              }else {
  721.                  self.removeClass("przesiadka_linia_active").addClass("przesiadka_linia_deactive");                      
  722.              }
  723.           });
  724.  
  725.           $(".przesiadka_konfiguracja_wypis").each(function(index) {
  726.  
  727.               var self = $(this);
  728.  
  729.               if(index == indexPrzesiadki) {
  730.                   self.show();
  731.               }else {
  732.                   self.hide();
  733.               }                    
  734.           });
  735.  
  736.           if(indexPrzesiadki == 0) {                    
  737.               $(".przesiadka_prev_bg").addClass("przesiadka_aktywny_odcinek");
  738.               $(".przesiadka_next_bg").removeClass("przesiadka_aktywny_odcinek");                    
  739.  
  740.           }else {                                      
  741.              
  742.               $("#rodzaj_wagonu_msg").hide();            
  743.               $(".przesiadka_prev_bg").removeClass("przesiadka_aktywny_odcinek");
  744.               $(".przesiadka_next_bg").addClass("przesiadka_aktywny_odcinek");                    
  745.           }                
  746.  
  747.           // ustawiamy index odcinka w elemencie html na potrzeby innych modulow
  748.           $("#indexPrzesiadki").val(indexPrzesiadki);      
  749.  
  750.           var klasa_poc1 = $("#klasa_wagonu").find("option:selected").val();
  751.           var klasa_poc2 = $("#klasa_wagonu").find("option:selected").val();
  752.  
  753.           if(klasa_poc1 !== klasa_poc2){
  754.               $("#klasa_wagonu").val(klasa_poc1);
  755.           }                  
  756.  
  757.           $(".przesiadka_info_znizka_rozne_kategorie").hide();
  758.  
  759.           this.obslugaBiletRodzinny_DuzaRodzina();
  760.  
  761.         };
  762.  
  763.         this.obslugaZnizkeDlaPrzesiadki = function() {
  764.  
  765.             var indexOdcinek = this.getindexPrzesiadki();                  
  766.  
  767.             var znizkiPierwszyOdcinek = ["#kod_znizki", "#kod_znizki_2", "#kod_znizki_3"];
  768.             var znizkiDrugiOdcinek = {
  769.                 combo : ["#kod_znizki_2_1", "#kod_znizki_2_2", "#kod_znizki_2_3"],
  770.                 wrapper : ["#tr_kod_znizki", "#tr_kod_znizki_2", "#tr_kod_znizki_3"]                  
  771.             };
  772.  
  773.  
  774.  
  775.             if(indexOdcinek > 0) {                
  776.                 this.pobierzZnizkiDlaPrzesiadki();                      
  777.  
  778.             }else { // obsluga pierwszego odcinka                      
  779.  
  780.                 var liczba_n = $("#liczba_n");
  781.                 var liczba_u = $("#liczba_u");
  782.                 var kod_znizki = $("#kod_znizki");
  783.  
  784.                 $(znizkiDrugiOdcinek.wrapper).each(function(key, elem) {
  785.  
  786.                     var znizka_wrapper = $(elem);                                                    
  787.                     znizka_wrapper.removeClass("przesiadka_hide_elem");
  788.                     znizka_wrapper.find(".znizki_wrapper_ulga_ilosc").removeClass("przesiadka_hide_elem");
  789.                     znizka_wrapper.find("#liczba_u").removeClass("przesiadka_hide_elem");
  790.                     znizka_wrapper.find(".znizki_wrapper_ulga_nazwa").find("div").each(function(key, elem) {                          
  791.  
  792.                      if($(elem).attr("class") == "znizki_przesiadki_wrapper") {
  793.                          $(elem).val(1);
  794.                          $(elem).hide();
  795.                      }else {
  796.                          $(elem).removeClass("przesiadka_hide_elem");                                                              
  797.                      }                          
  798.                  });
  799.  
  800.                 });
  801.  
  802.                 var isWybranoZnizke = false;
  803.                 $.each(znizkiPierwszyOdcinek, function( key, elem ) {
  804.                    if(parseInt($(elem).val()) > 1) {
  805.                       isWybranoZnizke = true;
  806.                    }
  807.                 });
  808.  
  809.                 if(isWybranoZnizke) {
  810.                    $("#tr_miejsce_wskazane").hide();
  811.                 }else {
  812.                    $("#tr_miejsce_wskazane").show();
  813.                 }
  814.  
  815.                 $(".znizki_przesiadki_wrapper").hide();
  816.                 $("#kod_znizki_opis").removeClass("przesiadka_hide_elem");
  817.                 $(".przesiadka_info_brak_znizki").hide();
  818.                 //$(".przesiadka_info_znizka_rozne_kategorie").hide();
  819.  
  820.                 var znizki_pracownika_kolei_arr = [77, 79, 84];
  821.  
  822.                 var wybrana_znizka = parseInt(kod_znizki.val());
  823.                 if(liczba_n.val() == 0 && liczba_u.val() == 1 && znizki_pracownika_kolei_arr.indexOf(wybrana_znizka) < 0) {
  824.                     $("#tr_miejsce_wskazane").show();
  825.                 }
  826.             }
  827.  
  828.  
  829.         };
  830.  
  831.  
  832.  
  833.         this.pobierzZnizkiDlaPrzesiadki = function() {                  
  834.  
  835.  
  836.               $.ajax({
  837.                   method: "GET",
  838.                   url: "/zakup-biletu-utils",
  839.                   cache: false,
  840.                   data : {
  841.                       action : "pobierzZnizkiPrzesiadki",                        
  842.                       karta_duzej_rodziny : $("#karta_duzej_rodziny").is(":checked"),
  843.                       bilet_rodzinny : $("#bilet_rodzinny").is(":checked"),
  844.                       klasa_wagonu : $("#klasa_wagonu").val()
  845.  
  846.                   },
  847.                   beforeSend: function( xhr ) {                            
  848.                       $(".zakup_biletu_form_main_wrapper").append(addMaskHtml());
  849.                   },              
  850.                   success: function(data) {    
  851.                      
  852.                       var result = JSON.parse(data);                            
  853.                       wypełnijCombaDlaPrzesiadki(result);
  854.                       obslugaZnizekDlaOdcinkow();                            
  855.                       ObslugaKlopotliwychZnizek().run();                      
  856.                       obslugaElementowDlaPrzesiadki();                        
  857.               //        dzieckoDoLat6();
  858.  
  859.                   },                        
  860.                   complete: function (r) {
  861.                       removeMaskHtml();  
  862.                   },                        
  863.                   error: function (xhr, status, thrownError) {                            
  864.                   }
  865.  
  866.             });
  867.  
  868.  
  869.  
  870.  
  871.             function wypełnijCombaDlaPrzesiadki(options) {
  872.  
  873.                 var comboZnizki = ["#kod_znizki", "#kod_znizki_2", "#kod_znizki_3"];                
  874.                 var znizkiComboPrzesiadka = ["#kod_znizki_2_1", "#kod_znizki_2_2", "#kod_znizki_2_3"];
  875.  
  876.  
  877.                 $.each(comboZnizki, function( key, elem ) {
  878.  
  879.                       var selectedOption = $(elem).find("option:selected");                                        
  880.  
  881.                       if(selectedOption.val() > 0) {                                                                        
  882.  
  883.                           var combo = $(znizkiComboPrzesiadka[key]);
  884.                           combo.html('');
  885.                           var znizkiCombos = options["znizki_" + key];
  886.  
  887.                           for (var i = 0; i < znizkiCombos.length; i++) {
  888.                              combo.append(znizkiCombos[i].option);
  889.                           }        
  890.                       }
  891.                   });                      
  892.             };
  893.  
  894.             function obslugaElementowDlaPrzesiadki() {
  895.  
  896.               var PIERWSZY_ODCINEK = 1;
  897.               var dalej_button = $(".dalej_button");
  898.  
  899.               //if(dalej_button.attr("przesiadka") == "true") { // sprawdzamy czy mamy doczynienia z przesiadka
  900.  
  901.                   var indexOdcinek = parseInt($("#indexPrzesiadki").val());                                
  902.                   if(indexOdcinek == PIERWSZY_ODCINEK) {
  903.  
  904.                       var przesiadkiPola = ["kod_znizki_2_1", "kod_znizki_2_2", "kod_znizki_2_3"];
  905.                       var isWybranoZnizke = false;
  906.                       $.each(przesiadkiPola, function( key, elem ) {
  907.                           if(parseInt($("#"+ elem).val()) > 1) {
  908.                               isWybranoZnizke = true;
  909.                           }
  910.                       });
  911.  
  912.                       if(isWybranoZnizke) {                        
  913.                          //$("#tr_miejsce_wskazane").hide();
  914.                          $("#tr_rezerwacja_obok_miejsca_juz_zajetego_wagon_2").hide();
  915.                          $("#tr_rezerwacja_obok_miejsca_juz_zajetego_miejsce_2").hide();                      
  916.                          $("#rezerwacja_miejsca_wskazanego_2").prop( "checked", false );                      
  917.                          $("#numer_wagonu_2").val('');
  918.                          $("#numer_miejsca_2").val('');
  919.                       }else {                        
  920.                          $("#tr_miejsce_wskazane").show();
  921.                       }
  922.  
  923.                   }
  924.               //}
  925.  
  926.           }
  927.  
  928.             function obslugaZnizekDlaOdcinkow() {                      
  929.  
  930.                 var znizkiPierwszyOdcinek = ["#kod_znizki", "#kod_znizki_2", "#kod_znizki_3"];
  931.                 var znizkiDrugiOdcinek = {
  932.                       combo : ["#kod_znizki_2_1", "#kod_znizki_2_2", "#kod_znizki_2_3"],
  933.                       wrapper : ["#tr_kod_znizki", "#tr_kod_znizki_2", "#tr_kod_znizki_3"]                  
  934.                   };
  935.  
  936.                 var liczbaUlgArr  = [
  937.                     ["liczba_u", "liczba_u_2_1"],
  938.                     ["liczba_u_2", "liczba_u_2_2"],
  939.                     ["liczba_u_3", "liczba_u_2_3"]                          
  940.                 ];
  941.  
  942.                 var iloscZaznaczonychZnizek = 0;
  943.                 var zaznaczoneZnizkiPierwszyOdcinek = [];
  944.                 var wybraneZnizkiDrugiOdcinek = [];
  945.                 var clearZnizkaDrugiOdcinek = [false, false, false];
  946.                 var brakujacaZnizkaDrugiOdcinek = {};
  947.  
  948.                     $.each(znizkiPierwszyOdcinek, function(key, elem) {              
  949.  
  950.                       // pobieramy zaznaczona znizke dla pierwszego odcinka                      
  951.                       var zaznaczonaZnizkaOdcinekPierwszy = $(elem).find("option:selected");                                        
  952.                       var znizkaKodPierwszyOdcinek = zaznaczonaZnizkaOdcinekPierwszy.val();                      
  953.                       var znizkaNazwaPierwszyOdcinek = zaznaczonaZnizkaOdcinekPierwszy.text();                      
  954.  
  955.                       zaznaczoneZnizkiPierwszyOdcinek.push({id:znizkaKodPierwszyOdcinek, nazwa:znizkaNazwaPierwszyOdcinek});
  956.  
  957.                       if(znizkaKodPierwszyOdcinek > 1) {
  958.                           iloscZaznaczonychZnizek++;
  959.                       }
  960.  
  961.                       var znizkiOpcjeDrugiOdcinek = znizkiDrugiOdcinek.combo[key];                      
  962.  
  963.                       $(znizkiOpcjeDrugiOdcinek).find("option").each(function(key1, elem1) {
  964.  
  965.                           var znizkaDrugiOdcinek = $(elem1);                            
  966.                           if(znizkaKodPierwszyOdcinek > 1) {                            
  967.                             if((znizkaKodPierwszyOdcinek == znizkaDrugiOdcinek.val())
  968.                                     && (znizkaNazwaPierwszyOdcinek == znizkaDrugiOdcinek.text())) {
  969.  
  970.                                 clearZnizkaDrugiOdcinek[key] = true;
  971.                                 wybraneZnizkiDrugiOdcinek.push({id:znizkaDrugiOdcinek.val(), nazwa:znizkaDrugiOdcinek.text()});                                                                                                    
  972.                             }                                              
  973.                           }                          
  974.                       }); // end each                          
  975.                   });   // end each    
  976.  
  977.  
  978.              var i = 0;
  979.              for(i; i < iloscZaznaczonychZnizek; i++) {                      
  980.  
  981.                  // sprawdzamy czy znizka nie wystepuje dla drugiego odcinka
  982.  
  983.                  if(clearZnizkaDrugiOdcinek[i] == false) {
  984.                      brakujacaZnizkaDrugiOdcinek = zaznaczoneZnizkiPierwszyOdcinek[i];
  985.                  }                      
  986.  
  987.                  // pokazujemy znizki dla drugiego odcinka
  988.                  var znizkaWrapper = $(znizkiDrugiOdcinek.wrapper[i]);                        
  989.                  //znizkaWrapper.removeClass("przesiadka_hide_elem");
  990.                  znizkaWrapper.find(".znizki_wrapper_ulga_ilosc").addClass("przesiadka_hide_elem");
  991.                  znizkaWrapper.find("#liczba_u" + (i > 0 ? "_" + (i + 1) : "")).addClass("przesiadka_hide_elem");
  992.                  znizkaWrapper.find(".znizki_wrapper_ulga_nazwa").find("div").each(function(key, elem) {                          
  993.  
  994.                      if($(elem).attr("class") != "znizki_przesiadki_wrapper") {
  995.                          $(elem).addClass("przesiadka_hide_elem");                              
  996.                      }else {
  997.                          $(elem).show();
  998.                      }                          
  999.                  });
  1000.  
  1001.                  if(wybraneZnizkiDrugiOdcinek[i] != undefined) {                    
  1002.                    $(znizkiDrugiOdcinek.combo[i]).val(wybraneZnizkiDrugiOdcinek[i].id);
  1003.                  }
  1004.  
  1005.              }
  1006.  
  1007.               if(brakujacaZnizkaDrugiOdcinek.id != undefined) {                        
  1008.  
  1009.                   var przesiadka_info_brak_znizki = $(".przesiadka_info_brak_znizki");                        
  1010.                   przesiadka_info_brak_znizki.show();
  1011.                   przesiadka_info_brak_znizki.find("span").empty().append("\"" +brakujacaZnizkaDrugiOdcinek.nazwa + "\"");                        
  1012.  
  1013.                   $("#kod_znizki_opis").addClass("przesiadka_hide_elem");      
  1014.                   $("#tr_liczba_osob_n_2").show();
  1015.  
  1016.                   for(var i =0; i < iloscZaznaczonychZnizek; i++) {                            
  1017.  
  1018.                       //$("#" + liczbaUlgArr[i][1]).val(1);                            
  1019.  
  1020.                       var znizkaWrapper = $(znizkiDrugiOdcinek.wrapper[i]);                            
  1021.                       znizkaWrapper.removeClass("przesiadka_hide_elem");
  1022.                       znizkaWrapper.find(".znizki_wrapper_ulga_ilosc").removeClass("przesiadka_hide_elem");
  1023.                       znizkaWrapper.find("#liczba_u_2_" + (i+1)).show();
  1024.                   }
  1025.  
  1026.               }else {                    
  1027.  
  1028.                   $("#liczba_n_2").val($("#liczba_n").val());
  1029.  
  1030.                   // ustwiamy liczbe osob ulgowych dla drugiego odcinka
  1031.                   $(liczbaUlgArr).each(function(key, elem){                            
  1032.                       $("#"+elem[1]).val($("#" + elem[0]).val());
  1033.                   });
  1034.  
  1035.                   $(wybraneZnizkiDrugiOdcinek).each(function(key, elem){
  1036.  
  1037.                       var znizkaDrugiOdcinekElement = $(elem);                            
  1038.                       var znizkiDrugiOdcinekCombo = znizkiDrugiOdcinek.combo[key];                    
  1039.  
  1040.                       $(znizkiDrugiOdcinekCombo).find("option").each(function(key1, elem1) {
  1041. //                          
  1042.                           if(znizkaDrugiOdcinekElement[0].id != $(elem1).val()) {
  1043.                               $(elem1).attr("disabled", "disabled");                                    
  1044.                           }else  {
  1045.                               $(elem1).attr("selected", "selected");                                                                        
  1046.                           }                                
  1047.                       });
  1048.  
  1049.                   });
  1050.  
  1051.               }
  1052.  
  1053.             };
  1054.  
  1055.           function addMaskHtml() {
  1056.                var html = "<div class=\"loadmask\"></div>";
  1057.                return html;
  1058.            };
  1059.            function removeMaskHtml() {
  1060.                $(".loadmask").remove();
  1061.            }
  1062.  
  1063.  
  1064.  
  1065.         };
  1066.  
  1067.         this.obslugaBiletRodzinny_DuzaRodzina = function() {
  1068.  
  1069.             var indexOdcinek = parseInt(this.getindexPrzesiadki());
  1070.  
  1071.             var KDR_BR_elementy = [
  1072.                 ["karta_duzej_rodziny", "tr_pokaz_karte_duzej_rodziny"],
  1073.                 ["bilet_rodzinny", "tr_pokaz_bilet_rodzinny"]
  1074.             ];
  1075.  
  1076.             for(var i=0; i<KDR_BR_elementy.length; i++) {
  1077.  
  1078.                 if($("#"+KDR_BR_elementy[i][0]).is(":checked")) {
  1079.  
  1080.                 var label_element = $("#"+KDR_BR_elementy[i][1]).find(".form_wrapper_input");
  1081.  
  1082.                 if(indexOdcinek == odcinek.PIERWSZY) {                          
  1083.                     label_element.removeClass("przesiadka_hide_elem");
  1084.                 }else if(indexOdcinek == odcinek.DRUGI){
  1085.                     label_element.addClass("przesiadka_hide_elem");
  1086.                 }
  1087.  
  1088.               }
  1089.  
  1090.             }
  1091.  
  1092.         };
  1093.  
  1094.  
  1095.         this.setIndexPrzesiadki = function(currentIndex) {
  1096.             this.indexPrzesiadki = currentIndex;
  1097.         };
  1098.  
  1099.         this.getindexPrzesiadki = function() {
  1100.             return this.indexPrzesiadki;
  1101.         };
  1102.  
  1103.         // private methods
  1104.          function _addInputKDFiBR(elem, value) {
  1105.              $("#zakup_biletu_form").append("<input class=\"opcja_biletu_rodzinny_mock display-hide\" type=\"checkbox\" name=\""+elem.attr("name")+"\" value=\""+value+"\" />");
  1106.          };
  1107.  
  1108.          function _removeInputKDRiBR() {
  1109.              $("#zakup_biletu_form").find(".opcja_biletu_rodzinny_mock").remove();
  1110.          };
  1111.  
  1112.          function _ustawMiejsceZajeteWskazaneMIejsce(ustawicPierwszyOdcinek) {
  1113.  
  1114.  
  1115.              var elementyAktywneIds = [
  1116.                  "rezerwacja_obok_miejsca_juz_zajetego",
  1117.                  "rezerwacja_miejsca_wskazanego",
  1118.                  "tr_rezerwacja_obok_miejsca_juz_zajetego_wagon",
  1119.                  "tr_rezerwacja_obok_miejsca_juz_zajetego_miejsce"
  1120.              ];
  1121.              var suffix_2 = "_2";
  1122.  
  1123.              var MIEJSCA = {                    
  1124.                  MIEJSCE_ZAJETE : "rezerwacja_obok_miejsca_juz_zajetego",
  1125.                  MIEJSCE_WSKAZANE : "rezerwacja_miejsca_wskazanego",
  1126.                  SEKCJA_WAGON : "tr_rezerwacja_obok_miejsca_juz_zajetego_wagon",
  1127.                  SEKCJA_MIEJSCE : "tr_rezerwacja_obok_miejsca_juz_zajetego_miejsce"                      
  1128.              };
  1129.  
  1130.              $.each(elementyAktywneIds, function(key, elem) {
  1131.  
  1132.                   var odcinek_1 = $("#" + elem);
  1133.                   var odcinek_2 = $("#" + elem + suffix_2);
  1134.  
  1135.                  if(ustawicPierwszyOdcinek) {                            
  1136.                      odcinek_1.show();
  1137.                      odcinek_2.hide();
  1138.                  }else {                          
  1139.                      odcinek_1.hide();
  1140.                      odcinek_2.show();
  1141.                  }                      
  1142.              });
  1143.  
  1144.              if(!ustawicPierwszyOdcinek) {
  1145.                  $("#" + MIEJSCA.SEKCJA_WAGON).addClass("display-hide-important");
  1146.                  $("#" + MIEJSCA.SEKCJA_MIEJSCE).addClass("display-hide-important");                      
  1147.              }else {
  1148.                  $("#" + MIEJSCA.SEKCJA_WAGON).removeClass("display-hide-important");
  1149.                  $("#" + MIEJSCA.SEKCJA_MIEJSCE).removeClass("display-hide-important");
  1150.              }
  1151.  
  1152.              var id_przesiadka = (!ustawicPierwszyOdcinek) ? suffix_2 : "";
  1153.  
  1154.              var miejsce_zajete = $("#" + MIEJSCA.MIEJSCE_ZAJETE + id_przesiadka);
  1155.              var miejsce_wskazane = $("#" + MIEJSCA.MIEJSCE_WSKAZANE + id_przesiadka);
  1156.              var sekcja_wagon = $("#" + MIEJSCA.SEKCJA_WAGON + id_przesiadka);
  1157.              var sekcja_miejsce = $("#" + MIEJSCA.SEKCJA_MIEJSCE + id_przesiadka);
  1158.  
  1159.              if(miejsce_zajete.is(":checked") || miejsce_wskazane.is(":checked")) {
  1160.  
  1161.                  sekcja_wagon.show();
  1162.                  sekcja_miejsce.show();
  1163.             }else {
  1164.                  sekcja_wagon.hide();
  1165.                  sekcja_miejsce.hide();
  1166.  
  1167.              }
  1168.  
  1169.          }
  1170.  
  1171.  
  1172.          function _pokazUkryjElementyDlaPrzesiadek(elementy, czyPokazac) {                  
  1173.  
  1174.              $.each(elementy,  function(idx, element) {                    
  1175.                   $.each(element,  function(idxSub, elemSub) {                                                
  1176.                       var elem = (idx == "id") ? $("#" + elemSub) : $("." + elemSub);
  1177.                       if(czyPokazac) {
  1178.                           elem.removeClass("przesiadka_hide_elem");
  1179.                       }else {
  1180.                           elem.addClass("przesiadka_hide_elem");
  1181.                       }
  1182.                    });
  1183.                });                  
  1184.          }
  1185.  
  1186.  
  1187.     };
  1188.  
  1189.     function eventBlurMiejsceZajeteWskazane() {
  1190.  
  1191.         var elementy = ["numer_wagonu", "numer_miejsca", "numer_wagonu_2", "numer_miejsca_2"];                          
  1192.  
  1193.         $.each(elementy ,function(idx, elem) {                                    
  1194.  
  1195.           $("#" + elem).blur(function() {
  1196.  
  1197.               var self = $(this);
  1198.               var error = false;                    
  1199.  
  1200.               if(self.val().length > 0) {                        
  1201.                   if (!self.val().match(/^\d+$/)) {                                                  
  1202.                       self.addClass("error_input").closest(".form_wrapper_input").find(".error_info_wskazane_zajete").removeClass("display-hide");                                                      
  1203.                   }else {
  1204.                       self.removeClass("error_input").closest(".form_wrapper_input").find(".error_info_wskazane_zajete").addClass("display-hide");                            
  1205.                   }
  1206.               }
  1207.  
  1208.               /*
  1209.               $(".error_info_wskazane_zajete").each(function(idx, elem) {
  1210.                   if($(elem).is(":visible")) {
  1211.                       error = true;
  1212.                   }
  1213.               });                    
  1214.  
  1215.               if(error) {                        
  1216.                   $(".dalej_button").addClass("disabled_button");  
  1217.               }else {                        
  1218.                   $(".dalej_button").removeClass("disabled_button");                        
  1219.               }
  1220.               */
  1221.  
  1222.           });
  1223.       });
  1224.     }
  1225.    
  1226.     function BilDodatkoweService() {
  1227.        
  1228.         function czyZaznaczonoKuszetkeSypialne() {
  1229.             return (parseInt($(".rodzaj_miejsca:checked").val()) > 1);            
  1230.         }
  1231.        
  1232.         function czyNieWybranoCalegoPrzedzialuDlaPsa() {
  1233.            
  1234.             var flag = false;
  1235.            
  1236.             if(czyZaznaczonoKuszetkeSypialne() && czyWybranoPsa()) {
  1237.                
  1238.                 var przedzial_ilosc = parseInt($("#przedzial").val());
  1239.                 var lLozek = $("#llozek");
  1240.  
  1241.                 var zbiorczaLiczbaOsob = getZbiorczaIloscOsob();
  1242.  
  1243.                 if(zbiorczaLiczbaOsob < przedzial_ilosc) {
  1244.                     flag = true;
  1245.  
  1246.                 }else if(lLozek.is(":visible") && (parseInt(lLozek.val()) < zbiorczaLiczbaOsob)) {
  1247.                     flag = true;
  1248.                 }
  1249.                
  1250.             }
  1251.            
  1252.             return flag;
  1253.         }
  1254.        
  1255.         function getZbiorczaIloscOsob() {
  1256.                        
  1257.             var liczba_n = $("#liczba_n");            
  1258.             var liczba_osob = 0;
  1259.            
  1260.             var liczba_u_arr = ["liczba_u", "liczba_u_2", "liczba_u_3"];
  1261.             var kod_znizki_arr = ["kod_znizki", "kod_znizki_2", "kod_znizki_3"];            
  1262.                        
  1263.             liczba_osob = parseInt(liczba_n.val());                
  1264.                
  1265.             $.each(liczba_u_arr, function(idx, liczba_) {                    
  1266.                 liczba_osob += parseInt($("#" + liczba_).val());
  1267.             });
  1268.            
  1269.             return liczba_osob;
  1270.            
  1271.         }
  1272.        
  1273.          function czyWybranoPsa() {
  1274.                
  1275.             var isPies = false;  
  1276.             var bil_dod_psy_arr = [17, 18, 19]; // psa, psa-asystenta, psa-przewodnika
  1277.            
  1278.             $(".bilet_dodatkowy").each(function(idx, elem) {                
  1279.                 if (bil_dod_psy_arr.indexOf(parseInt($(elem).val())) > -1) {                      
  1280.                     isPies = true;
  1281.                 }
  1282.             });
  1283.  
  1284.             return isPies;
  1285.         }    
  1286.        
  1287.         return  {            
  1288.             czyNieWybranoCalegoPrzedzialuDlaPsa:czyNieWybranoCalegoPrzedzialuDlaPsa
  1289.         }
  1290.        
  1291.     } // end BilDodatkoweService
  1292.    
  1293.    
  1294.     function OknoModalneService() {
  1295.        
  1296.         this.dalejModalAtention = function() {
  1297.             $("#dalej_modal_footer").show();
  1298.             $('#dalej_modal_pracownik_kolei').hide();
  1299.             $('#dalej_modal_kolejarz_przesiadka').show();            
  1300.             $("#dalej_modal_inform").show();
  1301.             $("#dalej_modal_false").hide();
  1302.             $("#dalej_modal_ok").hide();
  1303.             $("#dalej_modal_header_informacja").hide();
  1304.             $("#dalej_modal_header_uwaga").show();            
  1305.         }
  1306.        
  1307.         this.dalejModalBiletPiesCalyPrzedzial = function() {
  1308.            
  1309.             $("#dalej_modal_footer").show();
  1310.             $("#dalej_modal_pies_caly_przedzial").show();
  1311.             $("#dalej_modal_ok").val($("#dalej_modal_ok").attr("v4"));              
  1312.             $("#dalej_modal_inform").hide();
  1313.             $("#dalej_modal_false").hide();
  1314.             $("#dalej_modal_ok").attr("type","button");
  1315.             $("#dalej_modal_ok").addClass("js-modal-close");
  1316.             $("#dalej_modal_header_informacja").show();
  1317.             $("#dalej_modal_header_uwaga").hide();
  1318.            
  1319.         }
  1320.        
  1321.         this.dalejModalJednoLozkoDzieckoOpiekun = function() {
  1322.             ZakupBiletuUtil().showOkienkoModalne(this, "dalej_modal_wspolne_usytuowanie_lozko_dziecko_opiekun");                      
  1323.         }
  1324.        
  1325.        
  1326.         this.dalejModalFalse = function() {
  1327.            
  1328.             $("#dalej_modal_footer").show();
  1329.             $("#dalej_modal_inform").hide();
  1330.             $("#dalej_modal_false").show();
  1331.             $("#dalej_modal_ok").attr("type","submit");
  1332.             $("#dalej_modal_ok").removeClass("js-modal-close");
  1333.             $("#dalej_modal_header_informacja").show();
  1334.             $("#dalej_modal_header_uwaga").hide();            
  1335.         }
  1336.        
  1337.         this.dalejModalDefault = function() {
  1338.            
  1339.             $("#dalej_modal_inform").hide();
  1340.             $("#dalej_modal_false").hide();
  1341.             $("#dalej_modal_ok").attr("type","button");
  1342.             $("#dalej_modal_ok").addClass("js-modal-close");
  1343.             $("#dalej_modal_header_informacja").show();
  1344.             $("#dalej_modal_header_uwaga").hide();
  1345.        }
  1346.        
  1347.     }
  1348.    
  1349.     function init() {
  1350.         eventBlurMiejsceZajeteWskazane();          
  1351.     }
  1352.  
  1353.     return {          
  1354.           init:init          
  1355.     }
  1356. };
  1357.  
  1358.  function ZakupBiletuUtil() {
  1359.    
  1360.     function odblokujZablokujWieleZnizekDlaWLBC() {
  1361.                
  1362.         var SIEDZACE = 1;
  1363.        
  1364.         var tr_kod_znizki_2 = $("#tr_kod_znizki_2");        
  1365.         var znizki_sekcja_wlbc = $(".znizki_sekcja_wlbc");
  1366.         var rodzaj_miejsca_val = $(".rodzaj_miejsca").filter(':checked').val();        
  1367.        
  1368.         if(tr_kod_znizki_2.hasClass("znizki_sekcja_wlbc")) {            
  1369.             if(rodzaj_miejsca_val > SIEDZACE) {                              
  1370.                 znizki_sekcja_wlbc.attr('style','display: none !important');
  1371.                 wyczyscPolaOsobUlgoweKodyZnizek();
  1372.             }else {                              
  1373.                 znizki_sekcja_wlbc.attr('style','display: table-row !important');
  1374.             }                        
  1375.         }
  1376.     }
  1377.    
  1378.     function wyczyscPolaOsobUlgoweKodyZnizek() {
  1379.        
  1380.         var setDefaultValue = function(elements) {            
  1381.             $.each(elements, function(idx, elem) {                
  1382.                 var select = $("#" + elem);
  1383.                 if(select.length > 0) {
  1384.                     select.val(select.find("option:first").val());
  1385.                 }                
  1386.             });            
  1387.         }
  1388.        
  1389.         var liczba_arr = ["liczba_u_2", "liczba_u_3", "liczba_u_2_2", "liczba_u_2_3"];        
  1390.         var kod_znizki_arr = ["kod_znizki_2", "kod_znizki_3", "kod_znizki_2_2", "kod_znizki_2_3"];
  1391.        
  1392.         setDefaultValue(liczba_arr);
  1393.         setDefaultValue(kod_znizki_arr);
  1394.        
  1395.     }
  1396.    
  1397.     function showOkienkoModalne(input_ref, modal_id) {
  1398.              
  1399.         $("#"+modal_id).show();
  1400.         $("#dalej_modal_ok").val("Potwierdzam");
  1401.         $("#dalej_modal_footer").show();                        
  1402.         $("#dalej_modal_inform").hide();
  1403.         $("#dalej_modal_false").show();                        
  1404.         $("#dalej_modal_ok").attr("type","submit");                        
  1405.         $("#dalej_modal_ok").addClass("js-modal-close").click(function(event) {                        
  1406.             $(input_ref).okienkoModalne().close();                                
  1407.         });
  1408.  
  1409.         $(input_ref).okienkoModalne().open();                              
  1410.  
  1411.     }
  1412.    
  1413.     function ustawLiczbeNJesliNieWybranoZnizkiWymiana() {
  1414.        
  1415.         var BEZ_ZNIZKI = 1;
  1416.        
  1417.         var wymiana_container = $("#wymiana_container");
  1418.        
  1419.         var liczba_n = $("#liczba_n");
  1420.         var znizki_arr = ["kod_znizki", "kod_znizki_2", "kod_znizki_3"];
  1421.        
  1422.         var czyWybranoZnizke = false;
  1423.        
  1424.         if(wymiana_container.is(":visible")) {
  1425.          
  1426.             $.each(znizki_arr, function(idx, elem) {            
  1427.                 var znizka_val = parseInt($("#" + elem).val());
  1428.  
  1429.                 if(znizka_val > BEZ_ZNIZKI) {
  1430.                     czyWybranoZnizke = true;
  1431.                 }
  1432.  
  1433.             });
  1434.  
  1435.             if(parseInt(liczba_n.val()) == 0 && !czyWybranoZnizke) {
  1436.                 liczba_n.val(1);
  1437.             }            
  1438.         }
  1439.        
  1440.     }
  1441.    
  1442.     function ustawMaxLiczbeLozekDlaPrzedzialu() {
  1443.        
  1444.         var uslugi = { KUSZETKA:2, SYPIALNE:4 };
  1445.  
  1446.         var getPrzedzialOsoby = function(przedzial_str) {
  1447.            
  1448.             var DEFAULT_VAL = 6;
  1449.            
  1450.             var ilosc = DEFAULT_VAL;           
  1451.             var regex = /[+-]?\d+(?:\.\d+)?/g;             
  1452.             var match;
  1453.             while (match = regex.exec(przedzial_str)) {
  1454.               ilosc = match[0];              
  1455.               break;
  1456.             }
  1457.            
  1458.             return ilosc;            
  1459.         }
  1460.        
  1461.         var llozekSelect = $('#llozek');
  1462.        
  1463.         if(llozekSelect.is(":visible")) {
  1464.            
  1465.             var zaznaczona_usluga = parseInt($(".rodzaj_miejsca").filter(':checked').val());
  1466.             var przedzial = (zaznaczona_usluga == uslugi.KUSZETKA) ? $("#klasa_wagonu") : $("#przedzial");
  1467.             var comboText = przedzial.find("option:selected").text();
  1468.             var ilosc_osob_w_przedziale = getPrzedzialOsoby(comboText);
  1469.  
  1470.             // resetujemy combo
  1471.             llozekSelect.empty();
  1472.            
  1473.             llozekSelect.append($('<option>', {
  1474.                 value: 0,
  1475.                 text: '-'
  1476.             }));
  1477.            
  1478.             for(var i=0; i < ilosc_osob_w_przedziale; i++ ) {                
  1479.                  llozekSelect.append($('<option>', {
  1480.                     value: i + 1,
  1481.                     text : i + 1
  1482.                 }));
  1483.             }
  1484.         }
  1485.        
  1486.       }
  1487.    
  1488.    
  1489.     return {
  1490.         odblokujZablokujWieleZnizekDlaWLBC:odblokujZablokujWieleZnizekDlaWLBC,
  1491.         showOkienkoModalne:showOkienkoModalne,
  1492.         ustawLiczbeNJesliNieWybranoZnizkiWymiana:ustawLiczbeNJesliNieWybranoZnizkiWymiana,
  1493.         ustawMaxLiczbeLozekDlaPrzedzialu:ustawMaxLiczbeLozekDlaPrzedzialu
  1494.     }
  1495.    
  1496.    
  1497.    
  1498. };
Advertisement
Add Comment
Please, Sign In to add comment