zadejte destinaci
Zadejte nebo vyberte destinaci ×
Nastavit nebo vymazat
zvolte termín a počet nocí
Zvolte termín a počet nocí ×
Nastavit nebo vymazat
Počet osob
' +'
' +'
' +'
' +'
' +'
' +'' +'' +'' +'' +'
' +'
'; // POCET DOPELÝCH - TEXTY DO OPTIONS var adults = ""; for(var i = 1; i <= settings.maxAdults; i++){ //predvybere pocet dospelych var isDefaultSelected = (i === settings.defaultPersons) ? "selected" : ""; //sklonování var adultsFlexOptions = [$(settings.container).attr("data-adult-1"), $(settings.container).attr("data-adult-2a4"), $(settings.container).attr("data-adult-5")]; var adulttextflexed = adultsFlexOptions[0]; if(i>1&i<5){ adulttextflexed = adultsFlexOptions[1]; } else if(i>4) { adulttextflexed = adultsFlexOptions[2]; } adults += "
"; } // POCET DETÍ - TEXTY DO OPTIONS var children = ""; for(var i = 0; i <= settings.maxChilds; i++){ //sklonování var childsFlexOptions = [$(settings.container).attr("data-child-5"), $(settings.container).attr("data-child-not"), $(settings.container).attr("data-child-1"), $(settings.container).attr("data-child-2a4")]; var childtextflexed = i +" "+ childsFlexOptions[0]; if(i==0){ childtextflexed = childsFlexOptions[1]; } else if(i==1){ childtextflexed = i +" "+ childsFlexOptions[2]; } else if(i>1&i<=4) { childtextflexed = i +" "+ childsFlexOptions[3]; } children += "
"; } // OBSAH JEDNOHO POKOJE var contentRoom = '
' +'
' +''+$(settings.container).attr("data-title-adults")+'' +'
' +'' +'
' +'
' +'
' +''+$(settings.container).attr("data-title-childs")+'' +'
' +'' +'
' +'
' +'
' +'
' +'
'; // ROKY DETÍ - TEXTY DO OPTIONS var ages = ""; for(var i = 0; i <= settings.maxChildAges; i++){ //sklonování var childsAgesFlexOptions = [$(settings.container).attr("data-age-5"), $(settings.container).attr("data-age-0"), $(settings.container).attr("data-age-1"), $(settings.container).attr("data-age-2a4")]; var childagestextflexed = i + childsAgesFlexOptions[0]; if(i==0){ childagestextflexed = childsAgesFlexOptions[1]; } else if(i==1){ childagestextflexed = i +" "+ childsAgesFlexOptions[2]; } else if(i>1&i<=4) { childagestextflexed = i +" "+ childsAgesFlexOptions[3]; } // preskoceni veku if (i!=1){ ages += "
"; } } // OBSAH VEKU DETÍ var contentAgesField = ""; if(settings.enableDatepickerAges) { contentAgesField = '
' +''+$(settings.container).attr("data-title-childsage")+'' +'
' +'
' +'' +'
' +'
' +'
'; } else { contentAgesField = '
' +''+$(settings.container).attr("data-title-childsage")+'' +'
' +'' +'
' +'
'; } // ZÍSKÁ PARAMETR PERSONS var urlParamPersons = ""; var results = new RegExp("[\?&]Persons=([^]*)").exec(window.location.href); if (results!=null){ urlParamPersons = decodeURI(results[1]) || 0; } // ZOBRAZUJE PODLE POCTU DETÍ POLE S VEKY function childAges(){ $(settings.container).on("change", childContainer + " select", function(){ var selected = ""; // ziskani hodnoty z vybraneho option $(this).find("option:selected").each(function() { selected = $(this).val(); }); // odebirani veku if(selected === "") { $(this).closest(".row").find(agesField).remove(); } // pridavani veku else { $(this).closest(".row").find(agesField).remove(); for(var i = 0; i < selected; i++) { $(this).closest(".row").find(agesContainer).append(contentAgesField); } settings.onInitSelectpicker($(settings.container).find("select")); // REFRESH SELEKTU } // spousteni funkce v pripade pouzivani datepickeru if(settings.enableDatepickerAges) { settings.onInitDatepickerAges($(agesField).find("input")); } }); } // KONTROLUJE TLACÍTKA PRIDAT A ODEBBRAT function controlRemoveAddButtons(){ if($(roomContainer + " > div").length === 1){ //$(removeRoom).hide(); $(addRoom).show();$(addRoom).text($(settings.container).attr("data-title-button")); } else if($(roomContainer + " > div").length === settings.maxRooms){ $(addRoom).hide(); $(removeRoom).show();$(addRoom).html(contentAddRoom); } else { $(removeRoom + ", " + addRoom).show();$(addRoom).html(contentAddRoom); } } // PRIDÁVÁ NEBO ODEBÍRÁ DALŠÍ POKOJE function removeAddRooms(){ // pridani radky s pokojem $(settings.container).on("click", addRoom, function(){ $(roomContainer).append(contentRoom); settings.onInitSelectpicker($(settings.container).find("select")); // REFRESH SELEKTU controlRemoveAddButtons(); // KONTROLA TLACÍTEK }); // odebirani posledni radky pokoje $(settings.container).on("click", removeRoom, function(){ $(roomContainer + " > div:last-of-type").remove(); controlRemoveAddButtons(); // KONTROLA TLACÍTEK }); } // VKLÁDÁNÍ TEXTU DO var resultPersons = ""; function insertSelectPersonsText() { var allAdults = 0; var allChilds = 0; var contentAdults = ""; var contentChilds = "";var result = ""; // ziskavani hodnot pro zapsani do skryteho inputu $(roomContainer + " > div").each(function(){ var adults = $(this).find(adultsContainer + " select option:selected").val(); var age = ""; // ziskani dat z inputu nebo ze selektu podle nastaveni pluginu $(this).find(agesField).each(function(){ if(settings.enableDatepickerAges) { var ageSplit = []; ageSplit.push($(this).find("input").val().slice(0,2)); ageSplit.push($(this).find("input").val().slice(3,5)); ageSplit.push($(this).find("input").val().slice(6,10)); age += "-" + ageSplit[2] + ageSplit[1] + ageSplit[0]; } else { age += "-" + $(this).find("select option:selected").val(); } }); result += adults + age + ";";resultPersons = result; allAdults += parseInt(adults); allChilds += parseInt($(this).find(childContainer + " select option:selected").val()); }); //sklonování var adultsText = [$(settings.container).attr("data-adult-1"), $(settings.container).attr("data-adult-2a4"), $(settings.container).attr("data-adult-5")]; var childsText = [$(settings.container).attr("data-child-1"), $(settings.container).attr("data-child-2a4"), $(settings.container).attr("data-child-5")]; //dospelý if(allAdults==1){ contentAdults = allAdults +" "+ adultsText[0]; } else if(allAdults>1&allAdults<5){ contentAdults = allAdults +" "+ adultsText[1]; } else { contentAdults = allAdults +" "+ adultsText[2]; } //deti if(allChilds==1){ contentChilds = ", "+ allChilds +" "+ childsText[0]; } else if(allChilds>1&allChilds<5){ contentChilds = ", "+ allChilds +" "+ childsText[1]; } else { contentChilds = ", "+ allChilds +" "+ childsText[2]; } // ulozeni osob do inputu a do spanu jako text if (allAdults==0) { $(personsContent).text($(settings.container).attr("data-title-input"));//$(addRoom).text($(settings.container).attr("data-title-button")); } else { $(personsContent).text(contentAdults + contentChilds); }} // UKLÁDÁ OSOBY DO SKRYTÉHO INPUTU, KTERÝ SE ODESÍLÁ function savePersons(){ $(settings.container).on("click", saveAll, function(){ //console.log("savePersons, saveAll .... "); insertSelectPersonsText(); $(personsResult).find("input").val(resultPersons).change(); $("#available").hide(); if ($(".js-adults-count").length != 0){ $(".js-price-persons-label").text("CENA ZA VŠECHNY: "); } else { $(".js-price-persons-label").text("CENA ZA OSOBU: "); } $(".js-persons-button").toggleClass("active"); }); } // NASTAVUJE OSOBY DO MODAL A DO INPUTU function settingPersons(){var rooms = urlParamPersons; // V prvnim pripade ziskava parametry ve vysledku if(rooms.indexOf(";") > -1) { rooms = urlParamPersons.split(";"); } // V druhem kdyz odesila parametry z HP else { rooms = urlParamPersons.split("%3b"); } var adults = []; var childages = []; var childs = []; for(i = 0; i < rooms.length - 1; i++) { // ziska pole s dospelymi (jedna hodnota = pocet dospelych v jednom pokoji) adults.push(rooms[i].split("-",1)); // ziska slozene pole kde v hlavnim poli jsou ulozene hodnoty jako veky deti tzn ze hlavni pole je rozdeleno po pokoji [pokoj1[vek1,vek2]], [pokoj2[vek1]] atd. if(rooms[i].slice(1).slice(1) !== "") { childages.push(rooms[i].slice(1).slice(1).split("-")); } else { childages.push("0"); } // celkovy pocet deti if(childages[i] !== "0") { childs.push(childages[i].length + 1); } else { childs.push("0"); } } for(i = 0; i < adults.length; i++) { var z = 1+i; $(roomContainer).append(contentRoom); //vybira pocet dospelych if(adults[i]!=2){ $(roomContainer +" div:nth-of-type("+ z +") "+ adultsContainer +" select option:selected").removeAttr("selected"); $(roomContainer +" div:nth-of-type("+ z +") "+ adultsContainer +" select option:nth-of-type("+ parseInt(adults[i]) +")").attr("selected","selected"); } //vybira pocet deti if(childs[i]!=0){ $(roomContainer +" div:nth-of-type("+ z +") "+ childContainer +" select option:nth-of-type("+ parseInt(childs[i]) +")").attr("selected","selected");} } //obnovuje selekty $(childContainer + " select").change(); // Vyber deti na selekty nebo inputyif(settings.enableDatepickerAges) { // vklada vek deti do inputu for(i = 0; i < childages.length; i++) { for(z = 0; z < childages[i].length; z++) { var x = i+1; if(childages[i][z]!=" "){ var year = childages[i][z].slice(0,4); var month = childages[i][z].slice(4,6); var day = childages[i][z].slice(6,8); $(roomContainer +" div:nth-of-type("+ x +") "+ agesContainer +" input").eq(z).val(day +"."+ month +"."+ year); } } } } else { //vybira vek deti for(i = 0; i < childages.length; i++) { for(z = 0; z < childages[i].length; z++) { var x = i+1; if(childages[i][z]!=" "){ $(roomContainer +" div:nth-of-type("+ x +") "+ agesContainer +" select").eq(z).find("option[value="+ childages[i][z] +"]").attr("selected","selected"); } } } //obnovuje selekty $(agesField + " select").change(); } // maze posledni radek pokoje (automaticky se tam pridava jeden navic proto se pak zase maze :D) //$(roomContainer +" > div:last-of-type").remove(); } // VYMAŽE VŠECHNY HODNOTY Z POLÍ function deletePersons(){ $(settings.container).on("click", deleteAll, function(){ $(roomContainer).empty(); // VYCISTÍ MODAL //$(roomContainer).append(contentRoom); // PRIDÁ DO MODALU ZÁKLADNI OSOBY// debug block://$(personsResult).find("input").removeAttr('hidden');//console.log($(personsResult).find("input").val(""));//console.log("............... input value: ");//console.log($(personsResult).find("input").val());// trochu chro, zatím jako rychlořešení resetu počtu osob:location.href=location.href.replace(/&?Persons=([^&]$|[^&]*)/i, ""); settings.onInitSelectpicker($(settings.container).find("select")); // REFRESH SELEKTU controlRemoveAddButtons(); // KONTROLA TLACÍTEK }); } // SPOUŠTÍ MODAL OKNO function startModal(){ $(settings.container).append(modalContent); // VLOŽÍ DO DIVU KONSTRUKCI MODALU //$(roomContainer).append(contentRoom); // PRIDÁ DO MODALU ZÁKLADNÍ OSOBY if (urlParamPersons != ""){ settingPersons(); // NASTAVÍ VYBRANÁ POLE Z URL } settings.onInitSelectpicker($(settings.container).find("select")); // REFRESH SELEKTU controlRemoveAddButtons(); // KONTROLA TLACÍTEK } childAges(); removeAddRooms(); startModal(); deletePersons(); savePersons(); insertSelectPersonsText(); }; }(jQuery)); $(document).ready(function(){ $("body").searchPersons({ container: "#persons", // CONTAINER MODALU groupPrice: true, // SKUPINOVÉ CENY (zatim nefunkcni) defaultPersons: 2, // DEFAULTNI POČET OSOB maxRooms: 15, // MAXIMÁLNÍ POČET POKOJŮ maxAdults: 10, // MAXIMÁLNÍ POČET DOSPĚLÝCH maxChilds: 3, // MAXIMÁLNÍ POČET DĚTÍ maxChildAges: 17, // MAXIMÁLNÍ POČET LET DÍTĚTE enableDatepickerAges: false, // ZAPNUTÍ DATUMŮ U VĚKŮ DĚTÍ onInitSelectpicker: function($selects){ // CALLBACK FUNKCE NA SELEKTY $selects.selectpicker({size: 8}); }, onInitDatepickerAges: function($inputs){ // CALLBACK FUNKCE NA DATEPICKER //$inputs.datepicker(); } });});