{"version":3,"sources":["locations.js","main.js"],"names":["namesLocations","getNamesLocationsByLanguage","language","cataniaairport","cataniacenter","cataniaport","taormina","castelmola","giardininaxos","letojanni","siracusa","augusta","brucoli","noto","fontanebianche","lidodinoto","marzamemi","ragusa","marinadiragusa","modica","marinadimodica","comisocenter","comisoairport","vittoria","lentini","carlentini","vizzini","francofonte","agrigento","gela","licata","caltagirone","caltanissetta","enna","piazzaarmerina","cefalu","palermocenter","mondello","palermoairport","bagheria","santaflavia","villabate","campofelicediroccella","santagatadimilitello","capodorlando","gioiosamarea","brolo","patti","barcellonapozzodigotto","portorosaport","milazzoport","milazzocenter","messinaport","messinacenter","aliterme","nizzadisicilia","roccalumera","furcisiculo","santateresa","savoca","forzadagro","santalessio","randazzo","bronte","linguaglossa","santavenerina","zafferana","milo","solicchiata","rovittello","piedimonteetneo","fiumefreddodisicilia","calatabiano","mascali","giarre","acireale","ripostoport","ribera","sciacca","mazaradelvallo","marsala","trapanicenter","trapaniairport","sanvitolocapo","pozzallo","pricesTaormina","top","pricesCataniaAirport","pricesCastelmola","pricesSiracusa","pricesMessina","pricesMilazzo","pricesComiso","mainPoints","airports","ports","keysMainPoints","Object","keys","typesRoutes","airport","city","port","isset","obj","trim","$","on","e","target","this","attr","offset","animate","offsetTop","hide","click","$spoilerBody","find","hasClass","slideToggle","removeClass","addClass","slideUp","end","$spoilerHead","setDefaults","datepicker","regional","removeAttr","Date","getFullYear","idForm","className","checkValidity","setPrices","each","offerPrice","tmp","numPax","text","val","is","JSON","stringify","objExc","serialObj","reset","moveInfoFromMainToBooking","parse","localStorage","getItem","returnObj","from","to","prop","locationName1","locationName2","strOneway","strRoundtrip","removeItem","changePassengers","thisBtn","btnName","minVal","parseInt","siblings","totalPassengers","numGroupPassengers","btnToEnable","totalAdults","totalChildren","strPassengers","index","value","minPersons","btnIncreaseDecrease","isRoundTripChecked","pax","dest","includes","location1","location2","paxType","routeSelected","length","priceToShow","i","keysLocations","keysLocationsTop","generateTo","empty","append","Option","varOptionDefault","disabled","hidden","shift","forEach","item","push","fieldName","sortLocations","filter","addOptionsLocations","keysLocationsBottomSorted","keysLocationsToSort","locationsToSort","entries","locations","map","_ref","_ref2","_slicedToArray","idLoc","nameLoc","sort","x","y","localeCompare","locationsSorted","goToStep2","curFlexStep2","flexStep2","checkValidityForm","window","lang","document","getElementsByTagName","url","pathname","substring","lastIndexOf","accordion","curRoute","setYear","toggleClass","filename","resetPassengers","addCalendar","scrollTo","getRouteType","point1","point2","change","setDefaultStructure","curFlexPart","calcPrice","getFullInfoStructure","fullInfo","context","blur","goToStep3","serializeMainForm","varFullStructure","varFullStructure1","varFullStructure2","isMessengerSelected","groupName","varFullName","varPhone","varDirection1","varDirection2","allMess","curMess","doajax","curFlexStep3","varpersons","varprice","parent","formtitle","formpersons","formprice","event","submit","preventDefault","objStructure","objStructureName","inputName","modalLang","varFromStep1","location","href","selectName","langClick","selected","fileName","scrollTop","formData","activeform","serialize","actionUrl","idModal","data","msg","modal","modalSuccess","modalErrorGeneral","modalErrorRequired","minDate","dateFormat","indexOf","focusDate","beforeSend","css","complete","focusin","delay","fadeOut","remove","getAttribute","attrName","valStructure","slice","setItem","parents","block1","block2","has","width"],"mappings":"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","file":"../main.min.js","sourcesContent":["// ---------------------------------------------------//\r\n// ----------------Directions and prices--------------//\r\n// ---------------------------------------------------//\r\n\r\n\r\nlet namesLocations = {}; // названия всех направлений в нашей системе (ключ+значение)\r\n\r\nfunction getNamesLocationsByLanguage(language){\r\n if(language==\"ru\"){\r\n namesLocations = {\r\n cataniaairport: \"Катания аэропорт\",\r\n cataniacenter: \"Катания центр\",\r\n cataniaport: \"Катания порт\",\r\n taormina: \"Таормина\",\r\n castelmola: \"Кастельмола\",\r\n giardininaxos: \"Джардини Наксос\",\r\n letojanni: \"Летоянни\",\r\n siracusa: \"Сиракуза\",\r\n augusta: \"Аугуста\",\r\n brucoli: \"Бруколи\",\r\n noto: \"Ното\",\r\n fontanebianche: \"Фонтане Бьянке\",\r\n lidodinoto: \"Лидо-ди-Ното\",\r\n marzamemi: \"Мардзамеми\", \r\n ragusa: \"Рагуза\", \r\n marinadiragusa: \"Марина-ди-Рагуза\", \r\n modica: \"Модика\", \r\n marinadimodica: \"Марина-ди-Модика\", \r\n comisocenter: \"Комизо центр\", \r\n comisoairport: \"Комизо аэропорт\", \r\n vittoria: \"Витториа\", \r\n lentini: \"Лентини\", \r\n carlentini: \"Карлентини\", \r\n vizzini: \"Виццини\", \r\n francofonte: \"Франкофонте\", \r\n agrigento: \"Агридженто\", \r\n gela: \"Джела\", \r\n licata: \"Ликата\", \r\n caltagirone: \"Кальтаджироне\", \r\n caltanissetta: \"Кальтаниссетта\", \r\n enna: \"Энна\", \r\n piazzaarmerina: \"Пьяцца-Армерина\", \r\n cefalu: \"Чефалу\", \r\n palermocenter: \"Палермо центр\", \r\n mondello: \"Монделло\", \r\n palermoairport: \"Палермо аэропорт\", \r\n bagheria: \"Багериа\", \r\n santaflavia: \"Санта Флавиа\", \r\n villabate: \"Виллабате\", \r\n campofelicediroccella: \"Кампо-Феличе-ди-Рочелла\", \r\n santagatadimilitello: \"Сант-Агата-ди-Милителло\", \r\n capodorlando: \"Капо д'Орландо\", \r\n gioiosamarea: \"Джойоза Мареа\", \r\n brolo: \"Броло\", \r\n patti: \"Патти\", \r\n barcellonapozzodigotto: \"Барчелона Поццо-ди-Готто\", \r\n portorosaport: \"Портороза порт\", \r\n milazzoport: \"Милаццо порт\", \r\n milazzocenter: \"Милаццо центр\", \r\n messinaport: \"Мессина порт\", \r\n messinacenter: \"Мессина центр\", \r\n aliterme: \"Али Терме\", \r\n nizzadisicilia: \"Ницца-ди-Сицилия\", \r\n roccalumera: \"Роккалумера\", \r\n furcisiculo: \"Фурчи Сикуло\", \r\n santateresa: \"Санта Тереза\", \r\n savoca: \"Савока\", \r\n forzadagro: \"Форца д'Агро\", \r\n santalessio: \"Сант-Алессио\", \r\n randazzo: \"Рандаццо\", \r\n bronte: \"Бронте\", \r\n linguaglossa: \"Лингуаглосса\", \r\n santavenerina: \"Санта Венерина\", \r\n zafferana: \"Дзафферана\", \r\n milo: \"Мило\", \r\n solicchiata: \"Соликкьята\", \r\n rovittello: \"Ровиттелло\", \r\n piedimonteetneo: \"Пьедимонте Этнео\", \r\n fiumefreddodisicilia: \"Фьюмефреддо-ди-Сичилья\", \r\n calatabiano: \"Калатабьяно\", \r\n mascali: \"Маскали\", \r\n giarre: \"Джарре\", \r\n acireale: \"Ачиреале\", \r\n ripostoport: \"Рипосто порт\", \r\n ribera: \"Рибера\", \r\n sciacca: \"Шакка\", \r\n mazaradelvallo: \"Мадзара-дел-Валло\", \r\n marsala: \"Марсала\", \r\n trapanicenter: \"Трапани центр\", \r\n trapaniairport: \"Трапани аэропорт\", \r\n sanvitolocapo: \"Сан-Вито-ло-Капо\", \r\n pozzallo: \"Поццалло\", \r\n }; \r\n }else if(language==\"it\"){\r\n namesLocations = {\r\n cataniaairport: \"Catania Aeroporto\",\r\n cataniacenter: \"Catania Centro\",\r\n cataniaport: \"Catania Porto\",\r\n taormina: \"Taormina\",\r\n castelmola: \"Castelmola\",\r\n giardininaxos: \"Giardini Naxos\",\r\n letojanni: \"Letojanni\",\r\n siracusa: \"Siracusa\",\r\n augusta: \"Augusta\",\r\n brucoli: \"Brucoli\",\r\n noto: \"Noto\",\r\n fontanebianche: \"Fontane Bianche\",\r\n lidodinoto: \"Lido di Noto\",\r\n marzamemi: \"Marzamemi\", \r\n ragusa: \"Ragusa\", \r\n marinadiragusa: \"Marina di Ragusa\", \r\n modica: \"Modica\", \r\n marinadimodica: \"Marina di Modica\", \r\n comisocenter: \"Comiso Centro\", \r\n comisoairport: \"Comiso Aeroporto\", \r\n vittoria: \"Vittoria\", \r\n lentini: \"Lentini\", \r\n carlentini: \"Carlentini\", \r\n vizzini: \"Vizzini\", \r\n francofonte: \"Francofonte\", \r\n agrigento: \"Agrigento\", \r\n gela: \"Gela\", \r\n licata: \"Licata\", \r\n caltagirone: \"Caltagirone\", \r\n caltanissetta: \"Caltanissetta\", \r\n enna: \"Enna\", \r\n piazzaarmerina: \"Piazza Armerina\", \r\n cefalu: \"Cefalù\", \r\n palermocenter: \"Palermo Centro\", \r\n mondello: \"Mondello\", \r\n palermoairport: \"Palermo Aeroporto\", \r\n bagheria: \"Bagheria\", \r\n santaflavia: \"Santa Flavia\", \r\n villabate: \"Villabate\", \r\n campofelicediroccella: \"Campo Felice di Roccella\", \r\n santagatadimilitello: \"Sant’Agata di Militello\", \r\n capodorlando: \"Capo D’Orlando\", \r\n gioiosamarea: \"Gioiosa Marea\", \r\n brolo: \"Brolo\", \r\n patti: \"Patti\", \r\n barcellonapozzodigotto: \"Barcellona Pozzo di Gotto\", \r\n portorosaport: \"Portorosa Porto\", \r\n milazzoport: \"Milazzo Porto\", \r\n milazzocenter: \"Milazzo Centro\", \r\n messinaport: \"Messina Porto\", \r\n messinacenter: \"Messina Centro\", \r\n aliterme: \"Ali Terme\", \r\n nizzadisicilia: \"Nizza di Sicilia\", \r\n roccalumera: \"Roccalumera\", \r\n furcisiculo: \"Furci Siculo\", \r\n santateresa: \"Santa Teresa\", \r\n savoca: \"Savoca\", \r\n forzadagro: \"Forza D’Agrò\", \r\n santalessio: \"Sant’Alessio\", \r\n randazzo: \"Randazzo\", \r\n bronte: \"Bronte\", \r\n linguaglossa: \"Linguaglossa\", \r\n santavenerina: \"Santa Venerina\", \r\n zafferana: \"Zafferana\", \r\n milo: \"Milo\", \r\n solicchiata: \"Solicchiata\", \r\n rovittello: \"Rovittello\", \r\n piedimonteetneo: \"Piedimonte Etneo\", \r\n fiumefreddodisicilia: \"Fiumefreddo di Sicilia\", \r\n calatabiano: \"Calatabiano\", \r\n mascali: \"Mascali\", \r\n giarre: \"Giarre\", \r\n acireale: \"Acireale\", \r\n ripostoport: \"Riposto porto\", \r\n ribera: \"Ribera\", \r\n sciacca: \"Sciacca\", \r\n mazaradelvallo: \"Mazara del Vallo\", \r\n marsala: \"Marsala\", \r\n trapanicenter: \"Trapani Centro\", \r\n trapaniairport: \"Trapani Aeroporto\", \r\n sanvitolocapo: \"San Vito lo Capo\", \r\n pozzallo: \"Pozzallo\", \r\n }; \r\n }else{\r\n namesLocations = {\r\n cataniaairport: \"Catania Airport\",\r\n cataniacenter: \"Catania Center\",\r\n cataniaport: \"Catania Port\",\r\n taormina: \"Taormina\",\r\n castelmola: \"Castelmola\",\r\n giardininaxos: \"Giardini Naxos\",\r\n letojanni: \"Letojanni\",\r\n siracusa: \"Siracusa\",\r\n augusta: \"Augusta\",\r\n brucoli: \"Brucoli\",\r\n noto: \"Noto\",\r\n fontanebianche: \"Fontane Bianche\",\r\n lidodinoto: \"Lido di Noto\",\r\n marzamemi: \"Marzamemi\", \r\n ragusa: \"Ragusa\", \r\n marinadiragusa: \"Marina di Ragusa\", \r\n modica: \"Modica\", \r\n marinadimodica: \"Marina di Modica\", \r\n comisocenter: \"Comiso Center\", \r\n comisoairport: \"Comiso Airport\", \r\n vittoria: \"Vittoria\", \r\n lentini: \"Lentini\", \r\n carlentini: \"Carlentini\", \r\n vizzini: \"Vizzini\", \r\n francofonte: \"Francofonte\", \r\n agrigento: \"Agrigento\", \r\n gela: \"Gela\", \r\n licata: \"Licata\", \r\n caltagirone: \"Caltagirone\", \r\n caltanissetta: \"Caltanissetta\", \r\n enna: \"Enna\", \r\n piazzaarmerina: \"Piazza Armerina\", \r\n cefalu: \"Cefalù\", \r\n palermocenter: \"Palermo Center\", \r\n mondello: \"Mondello\", \r\n palermoairport: \"Palermo Airport\", \r\n bagheria: \"Bagheria\", \r\n santaflavia: \"Santa Flavia\", \r\n villabate: \"Villabate\", \r\n campofelicediroccella: \"Campo Felice di Roccella\", \r\n santagatadimilitello: \"Sant’Agata di Militello\", \r\n capodorlando: \"Capo D’Orlando\", \r\n gioiosamarea: \"Gioiosa Marea\", \r\n brolo: \"Brolo\", \r\n patti: \"Patti\", \r\n barcellonapozzodigotto: \"Barcellona Pozzo di Gotto\", \r\n portorosaport: \"Portorosa Port\", \r\n milazzoport: \"Milazzo Port\", \r\n milazzocenter: \"Milazzo Center\", \r\n messinaport: \"Messina Port\", \r\n messinacenter: \"Messina Center\", \r\n aliterme: \"Ali Terme\", \r\n nizzadisicilia: \"Nizza di Sicilia\", \r\n roccalumera: \"Roccalumera\", \r\n furcisiculo: \"Furci Siculo\", \r\n santateresa: \"Santa Teresa\", \r\n savoca: \"Savoca\", \r\n forzadagro: \"Forza D’Agrò\", \r\n santalessio: \"Sant’Alessio\", \r\n randazzo: \"Randazzo\", \r\n bronte: \"Bronte\", \r\n linguaglossa: \"Linguaglossa\", \r\n santavenerina: \"Santa Venerina\", \r\n zafferana: \"Zafferana\", \r\n milo: \"Milo\", \r\n solicchiata: \"Solicchiata\", \r\n rovittello: \"Rovittello\", \r\n piedimonteetneo: \"Piedimonte Etneo\", \r\n fiumefreddodisicilia: \"Fiumefreddo di Sicilia\", \r\n calatabiano: \"Calatabiano\", \r\n mascali: \"Mascali\", \r\n giarre: \"Giarre\", \r\n acireale: \"Acireale\", \r\n ripostoport: \"Riposto port\", \r\n ribera: \"Ribera\", \r\n sciacca: \"Sciacca\", \r\n mazaradelvallo: \"Mazara del Vallo\", \r\n marsala: \"Marsala\", \r\n trapanicenter: \"Trapani Center\", \r\n trapaniairport: \"Trapani Airport\", \r\n sanvitolocapo: \"San Vito lo Capo\", \r\n pozzallo: \"Pozzallo\", \r\n }; \r\n }\r\n}\r\n\r\n\r\nvar pricesTaormina = {\r\n top: [\r\n \"cataniaairport\",\r\n \"cataniacenter\",\r\n \"messinacenter\",\r\n \"messinaport\",\r\n \"milazzocenter\", \r\n \"milazzoport\", \r\n \"portorosaport\", \r\n \"siracusa\"\r\n ], \r\n cataniaairport: [80, 80, 90, 110, 120, 130, 140, 150],\r\n cataniacenter: [80, 80, 90, 110, 120, 130, 140, 150],\r\n cataniaport: [80, 80, 90, 110, 120, 130, 140, 150],\r\n siracusa: [170, 200],\r\n augusta: [140, 170],\r\n brucoli: [135, 160],\r\n noto: [235, 280],\r\n fontanebianche: [250, 290],\r\n lidodinoto: [250, 290],\r\n marzamemi: [295, 345],\r\n ragusa: [300, 350],\r\n marinadiragusa: [355, 400],\r\n modica: [320, 370],\r\n marinadimodica: [355, 400],\r\n comisocenter: [300, 350],\r\n comisoairport: [300, 350],\r\n vittoria: [320, 370],\r\n lentini: [150, 170, 180, 210, 230, 250, 280, 285],\r\n carlentini: [150, 170, 180, 210, 230, 250, 280, 285],\r\n vizzini: [230, 280],\r\n francofonte: [195, 245],\r\n agrigento: [350, 400],\r\n gela: [350, 400],\r\n licata: [335, 385],\r\n caltagirone: [300, 350],\r\n caltanissetta: [340, 390],\r\n enna: [310, 360],\r\n piazzaarmerina : [350, 450],\r\n cefalu: [400, 420, 450, 450, 500, 550, 600, 650],\r\n palermocenter: [490, 520, 550, 550, 600, 650, 700, 750],\r\n mondello: [500, 550, 600, 650, 700, 750, 800, 850],\r\n palermoairport: [550, 600, 650, 700, 750, 750, 800, 850],\r\n bagheria: [420, 450],\r\n santaflavia: [420, 450],\r\n villabate: [430, 465],\r\n campofelicediroccella: [385, 445],\r\n santagatadimilitello: [315, 380],\r\n capodorlando: [285, 340],\r\n gioiosamarea: [295, 340],\r\n brolo: [280, 315],\r\n patti: [230, 280],\r\n barcellonapozzodigotto: [135, 170],\r\n portorosaport: [200, 240],\r\n milazzoport: [150, 150, 170, 190, 200, 220, 230, 250],\r\n milazzocenter: [150, 150, 170, 190, 200, 220, 230, 250],\r\n messinaport: [110, 120, 130, 150, 160, 180, 190, 220],\r\n messinacenter: [110, 120, 130, 150, 160, 180, 190, 220],\r\n aliterme: [95, 135],\r\n nizzadisicilia: [90, 105],\r\n roccalumera: [85, 100],\r\n furcisiculo: [80, 95],\r\n santateresa: [75, 95],\r\n savoca: [125, 155],\r\n forzadagro: [70, 80],\r\n santalessio: [75, 90],\r\n randazzo: [120, 150],\r\n bronte: [150, 180],\r\n linguaglossa: [90, 130],\r\n santavenerina: [80, 110],\r\n zafferana: [95, 130],\r\n milo: [110, 140],\r\n solicchiata: [130, 170],\r\n rovittello: [110, 150],\r\n piedimonteetneo: [75, 95],\r\n fiumefreddodisicilia: [45, 65],\r\n calatabiano: [35, 50],\r\n mascali: [55, 70],\r\n giarre : [85, 110],\r\n acireale : [85, 100],\r\n ripostoport : [80, 110],\r\n ribera: [400, 450],\r\n sciacca: [430, 485],\r\n mazaradelvallo: [480, 530],\r\n marsala: [530, 600],\r\n trapanicenter: [800, 950],\r\n trapaniairport: [800, 950],\r\n sanvitolocapo: [900, 1000],\r\n pozzallo: [295, 345],\r\n};\r\n\r\n\r\nvar pricesCataniaAirport = {\r\n top: [\r\n \"taormina\",\r\n \"giardininaxos\",\r\n \"letojanni\",\r\n \"forzadagro\",\r\n \"messinacenter\",\r\n \"messinaport\",\r\n \"milazzocenter\",\r\n \"milazzoport\",\r\n \"portorosaport\",\r\n \"siracusa\",\r\n \"ripostoport\",\r\n \"cefalu\"\r\n ],\r\n taormina: [80, 80, 90, 110, 120, 130, 140, 150],\r\n giardininaxos: [80, 80, 90, 110, 120, 130, 140, 150],\r\n letojanni: [80, 80, 90, 110, 120, 130, 140, 150],\r\n castelmola: [90, 90, 100, 110, 120, 130, 140, 150],\r\n siracusa: [140, 170],\r\n augusta: [100, 140],\r\n brucoli: [95, 120],\r\n noto: [170, 200],\r\n fontanebianche: [160, 190],\r\n lidodinoto: [180, 210],\r\n marzamemi: [250, 285],\r\n ragusa: [245, 285],\r\n marinadiragusa: [295, 320],\r\n modica: [265, 285],\r\n marinadimodica: [290, 315],\r\n comisocenter: [245, 285],\r\n comisoairport: [245, 285],\r\n vittoria: [270, 295],\r\n lentini: [90, 120],\r\n carlentini: [90, 120],\r\n vizzini: [165, 200],\r\n francofonte: [140, 170],\r\n agrigento: [290, 320],\r\n gela: [290, 320],\r\n licata: [290, 320],\r\n caltagirone: [250, 285],\r\n caltanissetta: [260, 295],\r\n enna: [250, 290],\r\n piazzaarmerina: [250, 285],\r\n cefalu: [330, 385],\r\n palermocenter: [400, 450],\r\n mondello: [430, 485],\r\n palermoairport: [450, 500],\r\n bagheria: [360, 400],\r\n santaflavia: [360, 400],\r\n villabate: [370, 410],\r\n campofelicediroccella: [280, 340],\r\n santagatadimilitello: [450, 450, 485, 520, 550, 600, 650, 700],\r\n capodorlando: [420, 420, 450, 480, 550, 590, 620, 650],\r\n gioiosamarea: [330, 330, 350, 380, 410, 440, 470, 520],\r\n brolo: [350, 350, 380, 400, 420, 450, 480, 550],\r\n patti: [280, 280, 300, 320, 350, 380, 410, 440],\r\n barcellonapozzodigotto: [230, 230, 250, 270, 290, 320, 350, 380],\r\n portorosaport: [250, 250, 270, 290, 310, 350, 380, 400],\r\n milazzoport: [180, 180, 190, 200, 220, 230, 250, 290],\r\n milazzocenter: [180, 180, 190, 200, 220, 230, 250, 290],\r\n messinaport: [150, 150, 160, 170, 180, 190, 200, 220],\r\n messinacenter: [150, 150, 160, 170, 180, 190, 200, 220],\r\n aliterme: [140, 175],\r\n nizzadisicilia: [135, 160],\r\n roccalumera: [125, 155],\r\n furcisiculo: [120, 145],\r\n santateresa: [110, 130],\r\n savoca: [145, 175],\r\n forzadagro: [100, 100, 110, 120, 125, 130, 140, 150],\r\n santalessio: [110, 130],\r\n randazzo: [200, 250],\r\n bronte: [220, 270],\r\n linguaglossa: [140, 180],\r\n santavenerina: [110, 140],\r\n zafferana: [135, 160],\r\n milo: [140, 180],\r\n solicchiata: [160, 200],\r\n rovittello: [150, 190],\r\n piedimonteetneo: [115, 145],\r\n fiumefreddodisicilia: [90, 120],\r\n calatabiano: [90, 120],\r\n mascali: [90, 120],\r\n giarre: [90, 120],\r\n acireale: [80, 110],\r\n ripostoport: [90, 120],\r\n ribera: [330, 370],\r\n sciacca: [360, 400],\r\n mazaradelvallo: [400, 460],\r\n marsala: [450, 495],\r\n trapanicenter: [600, 700],\r\n trapaniairport: [600, 700],\r\n sanvitolocapo: [650, 750],\r\n pozzallo: [245, 280],\r\n};\r\n\r\n\r\nvar pricesCastelmola = {\r\n top: [\r\n \"cataniaairport\",\r\n \"cataniacenter\",\r\n \"messinacenter\",\r\n \"messinaport\",\r\n \"milazzocenter\", \r\n \"milazzoport\", \r\n \"portorosaport\", \r\n \"siracusa\"\r\n ],\r\n cataniaairport: [90, 90, 100, 110, 120, 130, 140, 150],\r\n cataniacenter: [90, 90, 100, 110, 120, 130, 140, 150],\r\n cataniaport: [90, 90, 100, 110, 120, 130, 140, 150], \r\n siracusa: [170, 200],\r\n augusta: [140, 170],\r\n brucoli: [135, 160],\r\n noto: [235, 280],\r\n fontanebianche: [185, 230],\r\n lidodinoto: [240, 290],\r\n marzamemi: [295, 345],\r\n ragusa: [300, 350],\r\n marinadiragusa: [355, 400],\r\n modica: [320, 370],\r\n marinadimodica: [355, 400],\r\n comisocenter: [300, 350],\r\n comisoairport: [300, 350],\r\n vittoria: [320, 370],\r\n lentini: [150, 180],\r\n carlentini: [155, 185],\r\n vizzini: [230, 280],\r\n francofonte: [195, 245],\r\n agrigento: [350, 400],\r\n gela: [350, 400],\r\n licata: [335, 385],\r\n caltagirone: [300, 350],\r\n caltanissetta: [340, 390], \r\n enna: [310, 360], \r\n piazzaarmerina: [330, 395], \r\n cefalu: [350, 400],\r\n palermocenter: [490, 540],\r\n mondello: [540, 585],\r\n palermoairport: [600, 660],\r\n bagheria: [420, 450],\r\n santaflavia: [420, 450],\r\n villabate: [430, 465],\r\n campofelicediroccella: [385, 445],\r\n santagatadimilitello: [315, 380],\r\n capodorlando: [285, 340],\r\n gioiosamarea: [295, 340],\r\n brolo: [280, 315],\r\n patti: [230, 280],\r\n barcellonapozzodigotto: [135, 170],\r\n portorosaport: [200, 240],\r\n milazzoport: [160, 180],\r\n milazzocenter: [160, 180],\r\n messinaport: [130, 150, 160, 170, 180, 200, 220, 250],\r\n messinacenter: [130, 150, 160, 170, 180, 200, 220, 250],\r\n aliterme: [85, 100],\r\n nizzadisicilia: [90, 105],\r\n roccalumera: [85, 100],\r\n furcisiculo: [80, 95],\r\n santateresa: [75, 95],\r\n savoca: [125, 155],\r\n forzadagro: [70, 80],\r\n santalessio: [75, 90],\r\n randazzo: [150, 180],\r\n bronte: [175, 210],\r\n linguaglossa: [95, 130],\r\n santavenerina: [80, 110],\r\n zafferana: [95, 130],\r\n milo: [110, 140],\r\n solicchiata: [130, 170],\r\n rovittello: [110, 150],\r\n piedimonteetneo: [75, 95], \r\n fiumefreddodisicilia: [45, 65],\r\n calatabiano: [35, 50],\r\n mascali: [55, 70],\r\n giarre: [85, 110],\r\n acireale: [80, 99],\r\n ripostoport: [80, 110],\r\n ribera: [400, 450],\r\n sciacca: [430, 485],\r\n mazaradelvallo: [480, 530],\r\n marsala: [530, 600],\r\n trapanicenter: [800, 950],\r\n trapaniairport: [800, 950],\r\n sanvitolocapo: [900, 1000],\r\n pozzallo: [310, 350],\r\n};\r\n\r\n\r\nvar pricesSiracusa = {\r\n top: [\r\n \"cataniaairport\",\r\n \"cataniacenter\",\r\n \"taormina\",\r\n \"giardininaxos\",\r\n \"letojanni\",\r\n \"forzadagro\",\r\n \"messinacenter\",\r\n \"messinaport\",\r\n ],\r\n cataniaairport: [140, 170],\r\n cataniacenter: [140, 170],\r\n cataniaport: [140, 170],\r\n taormina: [170, 200],\r\n giardininaxos: [170, 200],\r\n letojanni: [170, 200],\r\n castelmola: [170, 200],\r\n cefalu: [560, 650],\r\n palermocenter: [650, 700],\r\n mondello: [700, 750],\r\n palermoairport: [735, 780],\r\n bagheria: [530, 620],\r\n santaflavia: [530, 620],\r\n villabate: [560, 650],\r\n campofelicediroccella: [500, 540],\r\n santagatadimilitello: [735, 780],\r\n capodorlando: [735, 780],\r\n gioiosamarea: [700, 750],\r\n brolo: [680, 735],\r\n patti: [650, 700],\r\n barcellonapozzodigotto: [630, 670],\r\n portorosaport: [650, 700],\r\n milazzoport: [320, 380],\r\n milazzocenter: [320, 380],\r\n messinaport: [270, 315],\r\n messinacenter: [270, 315],\r\n roccalumera: [550, 585],\r\n furcisiculo: [550, 585],\r\n santateresa: [520, 550],\r\n savoca: [550, 585],\r\n forzadagro: [470, 500],\r\n santalessio: [490, 525],\r\n randazzo: [330, 385],\r\n bronte: [360, 410],\r\n linguaglossa: [185, 220],\r\n santavenerina: [170, 200],\r\n zafferana: [185, 220],\r\n milo: [200, 250],\r\n solicchiata: [235, 285],\r\n rovittello: [200, 250],\r\n piedimonteetneo: [170, 200],\r\n fiumefreddodisicilia: [160, 180],\r\n calatabiano: [160, 180],\r\n mascali: [150, 165],\r\n giarre: [135, 150],\r\n acireale: [125, 135],\r\n ripostoport: [170, 200],\r\n};\r\n\r\n\r\nvar pricesMessina = {\r\n top: [\r\n \"cataniaairport\",\r\n \"cataniacenter\",\r\n \"taormina\",\r\n \"giardininaxos\",\r\n \"letojanni\", \r\n \"siracusa\"\r\n ], \r\n cataniaairport: [150, 150, 160, 170, 180, 190, 200, 220],\r\n cataniacenter: [150, 150, 160, 170, 180, 190, 200, 220],\r\n cataniaport: [150, 150, 160, 170, 180, 190, 200, 220],\r\n taormina: [110, 120, 130, 150, 160, 180, 190, 220],\r\n giardininaxos: [110, 120, 130, 150, 160, 180, 190, 220],\r\n letojanni: [110, 120, 130, 150, 160, 180, 190, 220],\r\n castelmola: [130, 150, 160, 170, 180, 200, 220, 250],\r\n siracusa: [270, 315],\r\n augusta: [220, 260],\r\n brucoli: [215, 260],\r\n noto: [320, 370],\r\n fontanebianche: [285, 315],\r\n lidodinoto: [340, 395],\r\n marzamemi: [400, 450],\r\n ragusa: [375, 435],\r\n marinadiragusa: [410, 465],\r\n modica: [395, 440],\r\n marinadimodica: [440, 500],\r\n comisocenter: [375, 430],\r\n comisoairport: [375, 430],\r\n vittoria: [400, 435],\r\n lentini: [250, 295],\r\n carlentini: [250, 295],\r\n vizzini: [320, 385],\r\n francofonte: [285, 335],\r\n agrigento: [460, 530],\r\n gela: [450, 510],\r\n licata: [435, 500],\r\n caltagirone: [395, 440],\r\n caltanissetta: [410, 485],\r\n enna: [400, 455],\r\n piazzaarmerina: [425, 500],\r\n cefalu: [440, 485],\r\n palermocenter: [500, 600],\r\n mondello: [550, 600],\r\n palermoairport: [645, 695],\r\n bagheria: [430, 465],\r\n santaflavia: [430, 465],\r\n villabate: [400, 440],\r\n campofelicediroccella: [385, 445],\r\n roccalumera: [85, 100],\r\n furcisiculo: [80, 95],\r\n santateresa: [75, 95],\r\n savoca: [125, 155],\r\n forzadagro: [95, 110],\r\n santalessio: [90, 100],\r\n randazzo: [250, 270],\r\n bronte: [295, 320],\r\n linguaglossa: [220, 250],\r\n santavenerina: [170, 235],\r\n zafferana: [220, 250],\r\n milo: [210, 250],\r\n solicchiata: [230, 265],\r\n rovittello: [200, 250],\r\n piedimonteetneo: [175, 200],\r\n fiumefreddodisicilia: [130, 150, 160, 170, 180, 200, 220, 250],\r\n calatabiano: [130, 150, 160, 170, 180, 200, 220, 250],\r\n mascali: [155, 180],\r\n giarre: [130, 140, 150, 160, 170, 180, 190, 210],\r\n acireale: [140, 170],\r\n ripostoport: [145, 185],\r\n ribera: [500, 565],\r\n sciacca: [565, 620],\r\n mazaradelvallo: [580, 630],\r\n marsala: [630, 695],\r\n trapanicenter: [770, 850],\r\n trapaniairport: [770, 850],\r\n sanvitolocapo: [915, 995],\r\n pozzallo: [400, 465],\r\n};\r\n\r\n\r\n\r\nvar pricesMilazzo = {\r\n top: [\r\n \"cataniaairport\",\r\n \"cataniacenter\",\r\n \"taormina\",\r\n \"giardininaxos\",\r\n \"letojanni\",\r\n \"siracusa\"\r\n ],\r\n cataniaairport: [180, 180, 190, 200, 220, 230, 250, 290],\r\n cataniacenter: [180, 180, 190, 200, 220, 230, 250, 290],\r\n cataniaport: [180, 180, 190, 200, 220, 230, 250, 290],\r\n taormina: [150, 150, 170, 190, 200, 220, 230, 250],\r\n giardininaxos: [150, 150, 170, 190, 200, 220, 230, 250],\r\n letojanni: [150, 150, 170, 190, 200, 220, 230, 250],\r\n castelmola: [160, 180],\r\n siracusa: [320, 380],\r\n augusta: [245, 285],\r\n brucoli: [235, 290],\r\n noto: [340, 410],\r\n fontanebianche: [310, 350],\r\n lidodinoto: [365, 435],\r\n marzamemi: [425, 475],\r\n ragusa: [400, 470],\r\n marinadiragusa: [435, 510],\r\n modica: [410, 475],\r\n marinadimodica: [485, 520],\r\n comisocenter: [400, 470],\r\n comisoairport: [400, 470],\r\n vittoria: [445, 485],\r\n lentini: [275, 340],\r\n carlentini: [275, 340],\r\n vizzini: [350, 410],\r\n francofonte: [330, 385],\r\n agrigento: [500, 575],\r\n gela: [500, 575],\r\n licata: [550, 600],\r\n caltagirone: [440, 500],\r\n caltanissetta: [465, 520],\r\n enna: [440, 500],\r\n piazzaarmerina: [485, 500],\r\n cefalu: [400, 440],\r\n palermocenter: [450, 500],\r\n mondello: [500, 550],\r\n palermoairport: [600, 650],\r\n bagheria: [395, 430],\r\n santaflavia: [400, 410],\r\n villabate: [370, 400],\r\n campofelicediroccella: [350, 390],\r\n roccalumera: [99, 115],\r\n furcisiculo: [99, 115],\r\n santateresa: [105, 115],\r\n savoca: [150, 185],\r\n forzadagro: [130, 150],\r\n santalessio: [99, 115],\r\n randazzo: [285, 315],\r\n bronte: [320, 355],\r\n linguaglossa: [215, 260],\r\n santavenerina: [200, 240],\r\n zafferana: [215, 260],\r\n milo: [240, 275],\r\n solicchiata: [250, 300],\r\n rovittello: [230, 285],\r\n piedimonteetneo: [195, 220],\r\n fiumefreddodisicilia: [150, 200],\r\n calatabiano: [140, 175],\r\n mascali: [155, 190],\r\n giarre: [165, 200],\r\n acireale: [165, 210],\r\n ripostoport: [185, 220],\r\n ribera: [550, 600],\r\n sciacca: [610, 700],\r\n mazaradelvallo: [680, 750],\r\n marsala: [730, 800],\r\n trapanicenter: [800, 875],\r\n trapaniairport: [800, 875],\r\n sanvitolocapo: [930, 1000],\r\n pozzallo: [440, 500],\r\n};\r\n\r\n\r\n\r\nvar pricesComiso = {\r\n top: [\r\n \"cataniaairport\",\r\n \"cataniacenter\",\r\n \"taormina\",\r\n \"giardininaxos\",\r\n \"letojanni\", \r\n \"siracusa\",\r\n \"messinacenter\",\r\n \"messinaport\",\r\n \"milazzocenter\", \r\n \"milazzoport\", \r\n \"portorosaport\", \r\n ], \r\n cataniaairport: [245, 285],\r\n cataniacenter: [245, 285],\r\n cataniaport: [245, 285],\r\n taormina: [300, 350],\r\n giardininaxos: [300, 350],\r\n letojanni: [300, 350],\r\n castelmola: [300, 350],\r\n cefalu: [660, 750],\r\n palermocenter: [750, 800],\r\n mondello: [800, 850],\r\n palermoairport: [835, 880],\r\n bagheria: [630, 720],\r\n santaflavia: [630, 720],\r\n villabate: [660, 750],\r\n campofelicediroccella: [600, 640],\r\n santagatadimilitello: [660, 750],\r\n capodorlando: [635, 700],\r\n gioiosamarea: [600, 670],\r\n brolo: [580, 660],\r\n patti: [560, 640],\r\n barcellonapozzodigotto: [540, 610],\r\n portorosaport: [560, 640],\r\n milazzoport: [400, 470],\r\n milazzocenter: [400, 470],\r\n messinaport: [375, 430],\r\n messinacenter: [375, 430],\r\n roccalumera: [435, 485],\r\n furcisiculo: [435, 485],\r\n santateresa: [400, 450],\r\n savoca: [435, 485],\r\n forzadagro: [350, 395],\r\n santalessio: [375, 420],\r\n randazzo: [420, 485],\r\n bronte: [455, 500],\r\n linguaglossa: [330, 385],\r\n santavenerina: [300, 350],\r\n zafferana: [330, 385],\r\n milo: [350, 410],\r\n solicchiata: [375, 445],\r\n rovittello: [350, 410],\r\n piedimonteetneo: [300, 350],\r\n fiumefreddodisicilia: [300, 350],\r\n calatabiano: [300, 350],\r\n mascali: [270, 310],\r\n giarre: [250, 285],\r\n acireale: [235, 265],\r\n ripostoport: [300, 350],\r\n};\r\n\r\n\r\n//одинаковые Catania airport = Catania center = Catania port\r\n//Messina port = Messina center\r\n//Milazzo port = Milazzo center\r\n//Taormina = Giardini Naxos = Letojanni = (кроме цен до аэропорта Castelmola)\r\n\r\n\r\n//- Объект с основными точками\r\n// Значения свойств - объект с соответсвующими направлениями из этой точки\r\n//Создаем, чтобы была связь между элементами списка SELECT и соответствующими направлениями с ценами\r\nvar mainPoints = { \r\n cataniaairport: pricesCataniaAirport,\r\n cataniacenter: pricesCataniaAirport, //совпадает с аэропортом\r\n cataniaport: pricesCataniaAirport, //совпадает с аэропортом\r\n taormina: pricesTaormina,\r\n giardininaxos: pricesTaormina,\r\n letojanni: pricesTaormina,\r\n castelmola: pricesCastelmola,\r\n messinacenter: pricesMessina,\r\n messinaport: pricesMessina,\r\n milazzocenter: pricesMilazzo,\r\n milazzoport: pricesMilazzo,\r\n siracusa: pricesSiracusa,\r\n comisoairport: pricesComiso,\r\n};\r\n\r\nlet airports = [\"cataniaairport\", \"palermoairport\", \"comisoairport\", \"trapaniairport\"];\r\nlet ports = [\"milazzoport\", \"messinaport\", \"cataniaport\", \"ripostoport\", \"portorosaport\"];\r\n\r\nvar keysMainPoints = Object.keys(mainPoints); //получаем массив (\"cataniaairport\", \"cataniacenter\", \"taormina\" ...)\r\n\r\nlet typesRoutes = {\r\n \"airport\": {\"city\": \"airport-city\", \"port\": \"airport-port\", \"airport\": \"airport-airport\"},\r\n \"port\": {\"city\": \"port-city\", \"airport\": \"port-airport\", \"port\": \"port-port\"},\r\n \"city\": {\"airport\": \"city-airport\", \"port\": \"city-port\", \"city\": \"city-city\"},\r\n};\r\n\r\n","//****************************************/\r\n//********* Window Load ***********/\r\n//****************************************/\r\n\r\n\r\n//- Preloader\r\n$(window).on('load', function() {\r\n $(\"#over\").fadeOut().remove();\r\n $(\"#preload\").delay(550).fadeOut(\"slow\").remove();\r\n});\r\n\r\n\r\n//****************************************/\r\n//****** Document Ready ***********/\r\n//****************************************/\r\n\r\n$(document).ready(function () {\r\n\r\n let lang=document.getElementsByTagName(\"html\")[0].getAttribute(\"lang\"); //определяем язык страницы\r\n let url = window.location.pathname;\r\n let filename = url.substring(url.lastIndexOf('/')+1);\r\n\r\n // Smooth scroll\r\n smoothScroll();\r\n\r\n // Accordion (FAQ)\r\n accordion();\r\n\r\n // Imposta anno\r\n setYear();\r\n\r\n // Apre/chiude menu lingua\r\n $('.lang').click(function () {\r\n $('.lang__submenu').toggleClass('lang__submenu--visible');\r\n })\r\n\r\n //- Apre/chiude menu principale\r\n $(\".menu-button\").click(function () {\r\n $(this).toggleClass(\"menu-button--to-open\"),\r\n $(this).toggleClass(\"menu-button--to-close\"),\r\n $(this).hasClass(\"menu-button--to-close\") ? $(\".menu\").addClass(\"menu--visible\") : $(\".menu\").removeClass(\"menu--visible\")\r\n });\r\n\r\n //- инициализируем полный список всех направлений на нужном языке (объект namesLocations в файле locations.js: ключ+значение)\r\n getNamesLocationsByLanguage(lang);\r\n\r\n //- Aggiunge le direzioni in FROM\r\n generateFrom();\r\n\r\n if ((filename == \"\") || (filename == \"index.html\")){\r\n $('#mainform')[0].reset(); //- serve quando ricarichiamo la pagina\r\n resetPassengers(); // set valori di default\r\n setPrices();\r\n }\r\n \r\n if (filename == \"booking-transfer.php\") {\r\n addCalendar();\r\n moveInfoFromMainToBooking();\r\n }\r\n\r\n if (filename===\"booking-excursion.php\" || filename===\"booking-transfer-winery.php\"){\r\n addCalendar();\r\n moveInfoExcursionToBooking(filename);\r\n }\r\n\r\n\r\n //==========================================================//\r\n //=================== BOOKING TRANSFER ==================== //\r\n //==========================================================//\r\n\r\n // Инвертирование направлений\r\n $('.btn-inverse').click(function () {\r\n if(($('select[name=\"from\"]').val()) && ($('select[name=\"to\"]').val())) {\r\n var location1=$('select[name=\"from\"]').val();\r\n var location2=$('select[name=\"to\"]').val();\r\n $('select[name=\"from\"]').val(location2);\r\n $('select[name=\"from\"]').change();\r\n $('select[name=\"to\"]').val(location1);\r\n }\r\n calcPrice();\r\n }); \r\n\r\n //- Изменение FROM генерирует новый список направлений в TO\r\n $('select[name=\"from\"]').change(generateTo); \r\n\r\n //- Пересчет стоимости при изменении TO\r\n $('select[name=\"to\"]').change(function () {\r\n if($('select[name=\"from\"]').val()!=null){\r\n calcPrice(); \r\n }\r\n });\r\n\r\n // Пересчет стоимости при изменении флажка \"Add round-trip\" \r\n $('input[name=\"roundtrip\"]').click(calcPrice);\r\n\r\n // Показывает предупреждение при клике на телефон\r\n $('input[name=\"phone\"]').click(function(){\r\n if(!$(this).hasClass('was-alerted')){\r\n $(\"#phoneModal .modal\").removeClass('hidden');\r\n $(\"#phoneModal .modal__content\").removeClass('hidden'); \r\n $(this).addClass('was-alerted'); \r\n }\r\n });\r\n\r\n // Убирает ошибку (рамку) при клике на мессенджер \r\n $(\"input[name='messengers']\").click(function() { \r\n $(\".form__messengers\").removeClass('form__messengers--err');\r\n });\r\n \r\n\r\n //=================== ВЫБОР ПАССАЖИРОВ =================//\r\n\r\n // Как только поле \"Пассажиры\" получает фокус, открываем подменю и убираем фокус с поля \"Пассажиры\", \r\n // чтобы функция правильно срабатывала при мгновенном повторном нажатии на \"Пассажиры\"\"\r\n $('input[name=\"passengers\"]').focusin(function(){\r\n $(\".passengers__submenu\").toggleClass(\"hidden\");\r\n $(this).blur();\r\n });\r\n\r\n $(\".increase\").click(function(){\r\n changePassengers($(this), \".increase\", 0);\r\n });\r\n\r\n $(\".decrease--children\").click(function () {\r\n changePassengers($(this), \".decrease\", 0);\r\n });\r\n\r\n $(\".decrease--adults\").click(function () {\r\n changePassengers($(this), \".decrease\", 1);\r\n });\r\n\r\n $('.passengers__ok').click(function(){\r\n $('.passengers__submenu').addClass('hidden'); \r\n })\r\n\r\n $('.passengers__reset').click(resetPassengers);\r\n\r\n\r\n //====================- BOOKING TRANSFER (Step 1) =====================//\r\n \r\n // Переход с главной на страницу бронирования к шагу 2.\r\n $(\".btn--step1\").click(function () {\r\n if(checkValidityForm(\"#mainform\", \".modal-step1\")){\r\n serializeMainForm();\r\n }else{\r\n return(false)\r\n } \r\n });\r\n\r\n // Переход на странице бронирования к шагу 2.\r\n $(\".btn--booking-step1\").click(goToStep2); //- se goToStep2 restituisce false, l'evento [click] viene interrotto\r\n\r\n\r\n //====================- BOOKING TRANSFER (Step 2) =================//\r\n\r\n // Показываем поля в зависимости от выбора структуры (работает независимо и для структуры1 и для структуры2)\r\n $('.structure-group input').change(function () {\r\n var valStructure=$(this).val(); //=hotel1a, house1a, bb1a, hotel2, house2...\r\n var attrName=$(this).attr('name'); //=typeStructure3, typeStructure2, typeStructure1...\r\n \r\n $('input[name='+attrName+']').each(function(){\r\n var groupName=\".info-\"+$(this).val()+\"-group\";\r\n if($(this).val()===valStructure){\r\n $(groupName).removeClass(\"hidden\");\r\n $(groupName+\" input\").prop(\"required\", true);\r\n }else{ //- скрываем, делаем необязательными и очищаем поля, которые не выбраны\r\n $(groupName).addClass(\"hidden\");\r\n $(groupName+\" input\").prop(\"required\", false);\r\n $(groupName+\" input\").val(\"\");\r\n }\r\n });\r\n });\r\n\r\n \r\n // Подсказки для полей в форме\r\n $(\".help-icon\").hover(function() {\r\n $(this).siblings('.help-content').toggleClass('hidden');\r\n });\r\n\r\n // Возврат к шагу 1\r\n $('.btn--tostep1, .btn-back-step2').click(function (event) {\r\n $('.step2').addClass('hidden');\r\n $('.step1').removeClass('hidden');\r\n window.scrollTo(0, 0);\r\n });\r\n\r\n //- Переход к шагу 3.\r\n $('.btn--step2').click(goToStep3);\r\n\r\n\r\n //====================- BOOKING TRANSFER (Step 3) =======================//\r\n\r\n // Возврат к шагу 2\r\n $('.btn-back-step3').click(function () {\r\n $('#step2').removeClass('hidden');\r\n $('#step3').addClass('hidden');\r\n $(\".step3__changepart\").addClass('hidden');\r\n // Reset di tutti gli input all'interno di #formsummary tranne quello con id specifico\r\n $('#formsummary input:not(\"[name=\\'csrf_token\\']\")').val('');\r\n window.scrollTo(0, 0);\r\n });\r\n\r\n // Проверка и отправка итоговой формы\r\n $(\"#formsummary\").submit(function (event) {\r\n event.preventDefault(); //- Останавливаем действие по умолчанию (отправка формы)\r\n if(checkValidityForm(\"#formsummary\", \".modal-step2\") === false){\r\n return(false);\r\n } else {\r\n doajax(\"#formsummary\");\r\n $(this).removeClass(\"was-validated\");\r\n }\r\n });\r\n\r\n \r\n //===================================================================//\r\n //- ======== BOOKING TRANSFER CASE VINICOLE / EXCURSIONS ========== //\r\n //===================================================================//\r\n\r\n // Передача информации о трансфере на винодельню в форму заказа\r\n\r\n $(\".btn-bookwinery\").click(function () {\r\n var vartitle=$(this).parent().parent().find('.offers__card__title span').text();\r\n vartitle=vartitle.slice(0, -1); //- удаляем двоеточие в конце\r\n var varpersons=$(this).parent().find('.offers__card__npersons span').text();\r\n var varprice=$(this).parent().find('.offers__card__price').text();\r\n var objExc = {\r\n formtitle: vartitle,\r\n formpersons: varpersons,\r\n formprice: varprice\r\n };\r\n var serialObj = JSON.stringify(objExc); //сериализуем его\r\n localStorage.setItem(\"myKey\", serialObj); //запишем его в хранилище по ключу \"myKey\"\r\n });\r\n\r\n\r\n // Передача информации об экскурсии в форму заказа\r\n\r\n $(\".sendexcinfo\").click(function () {\r\n var vartitle=$('#datatosendtitle span').text();\r\n var varguide=$(this).parent().parent().find('.prices__header').text();\r\n var varpersons=$(this).parent().find('.prices__npersons span').text();\r\n var varprice=$(this).parent().find('.prices__price').text();\r\n var objExc = {\r\n formtitle: vartitle,\r\n formguide: varguide,\r\n formpersons: varpersons,\r\n formprice: varprice\r\n };\r\n var serialObj = JSON.stringify(objExc); //сериализуем его\r\n localStorage.setItem(\"myKey\", serialObj); //запишем его в хранилище по ключу \"myKey\"\r\n });\r\n\r\n\r\n // Проверка и отправка итоговой формы заказа на винодельню / экскурсии\r\n\r\n $(\"#bookingexc\").submit(function (event) {\r\n event.preventDefault(); //- Останавливаем действие по умолчанию (отправка формы)\r\n if(checkValidityForm(\"#bookingexc\", \".modal-step2\") === false){\r\n return(false);\r\n } else {\r\n doajax(\"#bookingexc\");\r\n $(this).removeClass(\"was-validated\");\r\n }\r\n });\r\n\r\n\r\n //======================================================//\r\n //==================== MODAL POPUP =====================//\r\n //======================================================//\r\n\r\n //Закрытие модального окна при клике на кнопки (крестик, ОК)\r\n $(\".modal-close\").click(function () {\r\n $(\".modal\").addClass('hidden');\r\n $(\".modal__content\").addClass('hidden');\r\n });\r\n\r\n $(\".modal-close-redirect\").click(function () {\r\n $(\".modal\").addClass('hidden');\r\n $(\".modal__content\").addClass('hidden');\r\n var modalLang=$(this).parents(\".modal-wrap\");\r\n if(modalLang.hasClass('modalEn')) {\r\n window.location.href=\"/\"; \r\n }\r\n else if(modalLang.hasClass('modalRu')) {\r\n window.location.href=\"/ru\"; \r\n }\r\n else if(modalLang.hasClass('modalIt')) {\r\n window.location.href=\"/it\"; \r\n }\r\n });\r\n\r\n\r\n}); // End $(document).ready\r\n\r\n\r\n//****************************************/\r\n//****** Document Click ***********/\r\n//****************************************/\r\n\r\n$(document).click(function (e){ \r\n // Закрываем выбор языков по клику снаружи\r\n var langClick = $(\".lang__submenu\"); // определяем элемент, к которому будем применять условия (можем указывать ID, класс либо любой другой идентификатор элемента)\r\n if((langClick.hasClass(\"lang__submenu--visible\")) && (!langClick.is(e.target)) && (!($('.lang').is(e.target))) && (!($('.lang__visible').is(e.target)))) {\r\n langClick.removeClass(\"lang__submenu--visible\");\r\n }\r\n\r\n // Пассажиры\r\n var block1 = $(\".passengers__submenu\"); // определяем элемент, к которому будем применять условия (можем указывать ID, класс либо любой другой идентификатор элемента)\r\n var block2=$('input[name=\"passengers\"]');\r\n if((!block1.hasClass(\"hidden\")) && (!block1.is(e.target)) && (!block2.is(e.target)) && (block1.has(e.target).length === 0)) {\r\n block1.addClass(\"hidden\");\r\n }\r\n});\r\n\r\n\r\n//****************************************/\r\n//****** Window Resize ***********/\r\n//****************************************/\r\n\r\n//- При изменении ширины окна браузера на ширине >=1200px сворачивается меню, если оно было развернуто.\r\n//- срабатывает событие клика на кнопку, чтобы и меню, и кнопка приняли необходимый вид для широких экранов\r\n$(window).resize(function(){\r\n if($(window).width()>=1200){\r\n if($('.menu').hasClass('menu--visible')){\r\n $('.menu-button').click();\r\n }\r\n }\r\n});\r\n\r\n\r\n//====================================================================//\r\n//====================== GENERAL FUNCTIONS ========================== //\r\n//====================================================================//\r\n\r\nfunction isset(obj) {\r\n if (typeof obj === \"string\" && obj.trim() === \"\") {\r\n return false;\r\n }else if (typeof obj === 'undefined' || obj === null) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n}\r\n\r\n//- Плавный переход к якорю\r\nfunction smoothScroll() {\r\n $(\".soft-scroll\").on(\"click\", function(e) {\r\n e.preventDefault();\r\n var target = $(this).attr(\"href\"),\r\n offsetTop = $(target).offset().top;\r\n $(\"body,html\").animate({\r\n scrollTop: offsetTop\r\n }, 1000);\r\n });\r\n}\r\n\r\n\r\n//- Аккордеон\r\nfunction accordion() {\r\n $('.spoiler-body').hide();\r\n $(\".spoiler-wrap\").click(function(e) {\r\n e.preventDefault();\r\n var $spoilerBody = $(this).find('.spoiler-body'),\r\n $spoilerHead = $(this).find('.spoiler-head');\r\n\r\n if ($(this).hasClass('active')) { //- если кликнули по открытой ссылке\r\n $spoilerBody.slideToggle();\r\n $spoilerHead.removeClass(\"icon-minus\").addClass(\"icon-plus\");\r\n $(this).removeClass('active');\r\n } else { //- если кликнули по закрытой ссылке\r\n $('.spoiler-wrap').removeClass('active').find('.spoiler-body').slideUp().end().find('.spoiler-head').removeClass(\"icon-minus\").addClass(\"icon-plus\");\r\n $(this).addClass('active');\r\n $spoilerHead.removeClass(\"icon-plus\").addClass(\"icon-minus\");\r\n $spoilerBody.slideToggle();\r\n }\r\n });\r\n}\r\n\r\n//- Календарь (datepicker)\r\nfunction addCalendar(){\r\n $.datepicker.setDefaults($.datepicker.regional['it']);\r\n $(\"input[myid='date']\").datepicker({\r\n minDate: \"+1\",\r\n dateFormat: \"d-M-yy\"\r\n });\r\n $(\"#date\").datepicker({\r\n minDate: \"+1\",\r\n dateFormat: \"d-M-yy\"\r\n });\r\n $('.ui-datepicker').addClass('notranslate');\r\n\r\n focusDate(); //- hack\r\n}\r\n\r\n\r\n//- Если у поля есть атрибут readonly, то не работает required.\r\n//- Хак: добавляем к полю атрибут readonly при получении фокуса, удаляем - при потере\r\n//- В этом случае пользователь не может вводить свои значения в поле\r\n\r\nfunction focusDate(){\r\n$(\"input[myid='date'], #date\").on({\r\n focusin: function() {\r\n $(this).attr(\"readonly\", true);\r\n },\r\n focusout: function() {\r\n $(this).removeAttr(\"readonly\");\r\n }\r\n});\r\n}\r\n\r\n//- Set year\r\nfunction setYear(){\r\n var d = new Date();\r\n var output = d.getFullYear();\r\n $('.yearval').text(output);\r\n}\r\n\r\n//- Проверка формы на валидность и показ ошибки\r\nfunction checkValidityForm(idForm, className){\r\n if ($(idForm)[0].checkValidity() === false){\r\n $(idForm).addClass('was-validated');\r\n $(\"#errorsModal .modal\").removeClass('hidden');\r\n $(\"#errorsModal \" + className).removeClass('hidden');\r\n return(false);\r\n }\r\n return(true);\r\n}\r\n\r\n\r\n\r\n//=====================================================================//\r\n//==================== FUNCTIONS BOOKING TRANSFER =====================//\r\n//=====================================================================//\r\n\r\n//================ Main page (particolari) ====================//\r\n\r\n///- Aggiungiamo i prezzi nelle offerte\r\nfunction setPrices(){\r\n $(\"#offers .offers__card__price\").each(function(){\r\n let tmp=$(this).attr('key');\r\n let numPax=$(this).attr('pax');\r\n let offerPrice;\r\n if ($(this).hasClass(\"price_taormina\")){\r\n offerPrice=pricesTaormina[tmp][numPax-1];\r\n }else{\r\n offerPrice=pricesCataniaAirport[tmp][numPax-1];\r\n } \r\n $(this).text(\"€ \"+offerPrice);\r\n });\r\n}\r\n\r\n//- Сериализация\r\nfunction serializeMainForm(){\r\n $(\"#mainform\").removeClass(\"was-validated\");\r\n var varfrom=$('#from option:selected').val();\r\n var varto=$('#to option:selected').val();\r\n var varpassengers=$('#passengers').val();\r\n var varpersons=$('#persons').val();\r\n var varadults=$('#adults').val();\r\n var varchildrensmall=$('#childrensmall').val();\r\n var varchildrenmedium=$('#childrenmedium').val();\r\n var varchildrenbig=$('#childrenbig').val();\r\n var varprice=$('#price').val();\r\n var varroundtrip=$('#roundTripCheck').is(\":checked\");\r\n\r\n var objExc = {\r\n formfrom: varfrom,\r\n formto: varto,\r\n formpassengers: varpassengers,\r\n formpersons: varpersons,\r\n formadults: varadults,\r\n formchildrensmall: varchildrensmall,\r\n formchildrenmedium: varchildrenmedium,\r\n formchildrenbig: varchildrenbig,\r\n formprice: varprice,\r\n formroundtrip: varroundtrip,\r\n };\r\n\r\n var serialObj = JSON.stringify(objExc); //сериализуем его\r\n localStorage.setItem(\"myKey\", serialObj); //запишем его в хранилище по ключу \"myKey\"\r\n\r\n $(\"#mainform\")[0].reset();\r\n}\r\n\r\n\r\n//- Перенос данных о маршруте с Главной на Booking transfer\r\n\r\nfunction moveInfoFromMainToBooking(){\r\n\r\n var returnObj = JSON.parse(localStorage.getItem(\"myKey\"));\r\n\r\n //- Если с главной страницы не поступили данные (перезагрузка или прямое открытие booking.html), то очищаем все формы и показываем шаг1\r\n if(returnObj == null){\r\n $(\"#step1\").removeClass('hidden');\r\n $('#step2').addClass('hidden');\r\n $('#step3').addClass('hidden');\r\n $('#booking')[0].reset(); \r\n $('#booking2')[0].reset(); \r\n $('#formsummary')[0].reset(); \r\n resetPassengers(); //пересчитываем пассажиров и стоимость\r\n return(false); \r\n }\r\n\r\n //- если returnObj не пустой, то получаем из него значения полей\r\n let from = returnObj['formfrom'];\r\n let to = returnObj['formto'];\r\n $('#from').val(from);\r\n generateTo(); //- формируем список в TO на странице booking\r\n $('#to').val(to);\r\n $('#persons').val(returnObj['formpersons']);\r\n $('#passengers').val(returnObj['formpassengers']);\r\n $('#adults').val(returnObj['formadults']);\r\n $('#childrensmall').val(returnObj['formchildrensmall']);\r\n $('#childrenmedium').val(returnObj['formchildrenmedium']);\r\n $('#childrenbig').val(returnObj['formchildrenbig']);\r\n $('#roundTripCheck').prop('checked', returnObj['formroundtrip']);\r\n $('#price').val(returnObj['formprice']);\r\n\r\n $(\"#booking2\").removeClass('was-validated'); //убирает подсветку ошибок, если мы уже вносили данные на шаге 2\r\n \r\n // Формируем текст с пунктом отправления и назначения\r\n let locationName1=namesLocations[$('#from').val()];\r\n let locationName2=namesLocations[$('#to').val()];\r\n let strOneway=locationName1 + ' → ' + locationName2;\r\n let strRoundtrip=locationName2 + ' → ' + locationName1;\r\n $(\"#headeroneway\").text(strOneway);\r\n \r\n // Показывает/скрывает то, что относится к трансферу в обратном направлении\r\n if ($('#roundTripCheck').is(':checked')){\r\n $(\"#headerroundtrip\").text(strRoundtrip);\r\n $(\".tripReturn\").removeClass('hidden');\r\n $('.tripReturn input').prop('required', true);\r\n $('#booking2 .heading_rettangle').removeClass('hidden');\r\n }else{\r\n $(\".tripReturn\").addClass('hidden');\r\n $('.tripReturn input').prop('required', false);\r\n $('#booking2 .heading_rettangle').addClass('hidden');\r\n }\r\n \r\n // Показывает число пассажиров, стоимость\r\n $(\"#headerpersons\").text($('#passengers').val());\r\n $(\"#headerprice\").text($('#price').val());\r\n\r\n // Изменение состояния кнопок добавить/удалить пассажира в зависимости от полученных данных\r\n btnIncreaseDecrease(); \r\n\r\n localStorage.removeItem(\"myKey\");\r\n\r\n goToStep2(); // вызываем функцию перехода от шага 1 к шагу 2 в системе бронирования\r\n}\r\n\r\n\r\n//================FUNCTIONS Пассажиры ====================//\r\n\r\n//Функция обработки количества и состава пассажиров\r\nfunction changePassengers(thisBtn, btnName, minVal){\r\n var maxSeats=8; // max число пассажирских мест в такси\r\n if(btnName==\".increase\"){\r\n var numGroupPassengers=parseInt(thisBtn.siblings('input').val()) + 1; //Новое число пассажиров в данной группе\r\n var totalPassengers=parseInt($(\".passengers__total\").val()) + 1; //Увеличиваем значение в счетчике пассажиров\r\n var btnToEnable=\".decrease\";\r\n }\r\n else if(btnName==\".decrease\"){\r\n var numGroupPassengers=parseInt(thisBtn.siblings('input').val()) - 1;\r\n var totalPassengers=parseInt($(\".passengers__total\").val()) - 1; \r\n var btnToEnable=\".increase\";\r\n if(numGroupPassengers==minVal){\r\n thisBtn.prop(\"disabled\", true);\r\n } \r\n }\r\n\r\n $(\".passengers__total\").val(totalPassengers); //Устанавливаем новое значение в счетчике пассажиров\r\n thisBtn.siblings('input').val(numGroupPassengers); //Изменяем число пассажиров в данной группе\r\n if(thisBtn.siblings(btnToEnable).prop(\"disabled\", true)){\r\n thisBtn.siblings(btnToEnable).prop(\"disabled\", false);\r\n }\r\n var totalAdults=parseInt($('input[name=\"adults\"]').val());\r\n var totalChildren=totalPassengers-totalAdults;\r\n var freeSeats=maxSeats-totalPassengers; //считаем количество свободных мест\r\n var strPassengers=$(\".label-adults\").text() + \": \" + totalAdults + \"; \" + $(\".label-children\").text() + \": \" + + totalChildren;\r\n $('input[name=\"passengers\"]').val(strPassengers);\r\n if(freeSeats<=0){\r\n $(\".increase\").prop(\"disabled\", true); //если свободных мест нет, блокируем все кнопки добавить\r\n } else {\r\n $(\".increase\").prop(\"disabled\", false); //иначе активируем кнопки добавить\r\n }\r\n calcPrice(); \r\n}\r\n\r\n//Функция активирует/деактивирует кнопки добавления и удаления пассажира\r\nfunction btnIncreaseDecrease(){\r\n var maxSeats=8; // max число пассажирских мест в такси\r\n var totalPassengers=parseInt($(\".passengers__total\").val()) ; //Получаем значение в счетчике пассажиров;\r\n var freeSeats=maxSeats-totalPassengers; //считаем количество свободных мест\r\n // В цикле проверяем количество пассажиров в каждой группе. Если оно 0 (для взрослых не 0, а 1),\r\n //то блокируем кнопку уменьшения, активируем кнопку добавления.\r\n $('.passengers__sub__number').each(function(index, value){\r\n if($(value).attr('id')==\"adults\"){\r\n var minPersons=1;\r\n }else{\r\n var minPersons=0;\r\n }\r\n\r\n if($(value).val()==minPersons){\r\n $(value).siblings('.decrease').prop(\"disabled\", true);\r\n $(value).siblings('.increase').prop(\"disabled\", false);\r\n }else{\r\n $(value).siblings('.decrease').prop(\"disabled\", false);\r\n }\r\n\r\n });\r\n\r\n if(freeSeats<=0){\r\n $(\".increase\").prop(\"disabled\", true); //если свободных мест нет, блокируем все кнопки добавить\r\n } else {\r\n $(\".increase\").prop(\"disabled\", false); //иначе активируем кнопки добавить\r\n }\r\n\r\n}\r\n\r\n//- Устанавливает значения по умолчанию полей и кнопок в окне \"Пассажиры\"\r\nfunction resetPassengers(){\r\n $('.passengers__sub__number').each(function(index, value){\r\n if($(value).attr('id')==\"adults\"){\r\n $(value).val('1');\r\n }else{\r\n $(value).val('0');\r\n }\r\n });\r\n var strPassengers=$(\".label-adults\").text() + \": 1; \" + $(\".label-children\").text() + \": 0\";\r\n $('input[name=\"passengers\"]').val(strPassengers);\r\n $('.passengers__total').val(1);\r\n btnIncreaseDecrease();\r\n calcPrice(); \r\n}\r\n\r\n//================ End Passeggeri ====================//\r\n\r\n\r\n//- Калькулятор стоимости\r\nfunction calcPrice(){\r\n let pax= parseInt($(\".passengers__total\").val());\r\n let from=$(\"#from option:selected\").val();\r\n let dest=$(\"#to option:selected\").val();\r\n let isRoundTripChecked=$(\"input[name='roundtrip']\").prop(\"checked\");\r\n\r\n if((!isset(pax)) || (!isset(from)) || (!isset(dest))){\r\n return false;\r\n }\r\n\r\n let location1;\r\n let location2;\r\n if(keysMainPoints.includes(from)){\r\n location1=from;\r\n location2=dest;\r\n }else if(keysMainPoints.includes(dest)){\r\n location1=dest;\r\n location2=from;\r\n }else{\r\n alert(\"We are sorry, but there is an error in our system. Please, contact us!\")\r\n return false;\r\n }\r\n\r\n let routeSelected = mainPoints[location1][location2]; //array of prices for selected route\r\n let paxType = routeSelected.length;\r\n let priceToShow;\r\n\r\n if(paxType==2){\r\n priceToShow = pax < 5 ? routeSelected[0] : routeSelected[1];\r\n }else if(paxType==8){\r\n priceToShow = routeSelected[pax-1];\r\n }else{\r\n alert(\"We are sorry, but there is an error in our system for this roate. Please, contact us!\")\r\n //priceToShow = \"\";\r\n return false;\r\n }\r\n \r\n if(isRoundTripChecked){\r\n priceToShow = 2 * priceToShow;\r\n }\r\n \r\n $(\"input[name='price']\").val(\"€ \" + priceToShow);\r\n\r\n}\r\n\r\n//=========== FUNCTIONS generate FROM e TO ===============//\r\n\r\n//- Генерирует список направлений в FROM в зависимости от языка\r\nfunction generateFrom(){\r\n \r\n let keysLocations=[]; //массив всех направлений\r\n let keysLocationsTop=[]; //массив приоритетных направлений\r\n\r\n keysLocations=Object.keys(namesLocations);\r\n\r\n for(let i=0; i { \r\n keysPricesLocation=Object.keys(mainPoints[item]); //- проверяем каждый объект с ценами нет ли среди его свойств направления FROM\r\n if(keysPricesLocation.includes(from)){ \r\n keysLocations.push(item); // добавляем текущее направление (ключ) в массив возможных направлений\r\n }\r\n });\r\n //- вывод направлений в TO (без сортировки, в порядке написания основных точек)\r\n addOptionsLocations(\"to\", keysLocations);\r\n\r\n}\r\n\r\n// Функция делит направления на приоритетные и нет и выводит их в браузере в FROM/TO\r\nfunction addOptionsLocationsTopBottom(fieldName, keysLocations, keysLocationsTop){\r\n \r\n // Получаем ключи неприоритетных направлений\r\n let keysLocationsBottom = keysLocations.filter(item => !keysLocationsTop.includes(item));\r\n \r\n // Сортируем неприоритетные направления по названию и получаем их ключи\r\n let keysLocationsBottomSorted=sortLocations(keysLocationsBottom);\r\n\r\n // Выводим приоритетные направления в браузере\r\n addOptionsLocations(fieldName, keysLocationsTop);\r\n \r\n // Выводим разделитель\r\n $('select[name='+fieldName+']').append(new Option(\"-----\", 'divider'));\r\n $(\"select[name=\"+fieldName+\"] option[value='divider']\").attr('disabled', true); //деактивируем разделитель\r\n \r\n // Выводим неприоритетные направления в браузере в алфавитном порядке\r\n addOptionsLocations(fieldName, keysLocationsBottomSorted);\r\n\r\n}\r\n\r\n// Функция выводит направления в браузере в FROM/TO\r\nfunction addOptionsLocations(fieldName, keysLocations){\r\n keysLocations.forEach(item => {\r\n $('select[name='+fieldName+']').append(new Option(namesLocations[item], item));\r\n });\r\n}\r\n\r\n//- Функция сортировки по алфавиту\r\nfunction sortLocations(keysLocationsToSort) {\r\n //- преобразуем объект в массив объектов, чтобы можно было воспользоваться сортировкой по полю\r\n // locations: {taormina: \"Taormina\", agrigento: \"Agrigento\", ...}\r\n // Object.entries(locations): [[\"taormina\", \"Taormina\"], [\"agrigento\", \"Agrigento\"], ...]\r\n // locationsToSort: [{idLoc: \"taormina\", nameLoc: \"Taormina\"}, {idLoc: \"agrigento\"}, nameLoc: \"Agrigento\"}, ...]\r\n\r\n let locations = [];\r\n keysLocationsToSort.forEach(item => {\r\n locations[item] = namesLocations[item];\r\n });\r\n \r\n let locationsToSort = Object.entries(locations).map(([idLoc, nameLoc]) => ({ idLoc, nameLoc }));\r\n locationsToSort.sort((x, y) => x.nameLoc.localeCompare(y.nameLoc));\r\n \r\n let locationsSorted = {};\r\n locationsToSort.forEach(item => {\r\n locationsSorted[item.idLoc] = item.nameLoc;\r\n });\r\n\r\n return Object.keys(locationsSorted);\r\n}\r\n\r\n\r\n//============================ BOOKING STEP 1 ===============================//\r\n\r\n// Переход к шагу 2 (Booking Details)\r\nfunction goToStep2(){\r\n let flexStep2 = \".step2__changepart\"; // класс, заменяющий .step2_changepart\r\n let curFlexStep2; // класс, заменяющий активный .step2_changepart\r\n\r\n //- проверяем валидность формы выбора направлений\r\n if (checkValidityForm(\"#booking\", \".modal-step1\") === false) {\r\n return(false);\r\n }\r\n\r\n //- скрываем шаг1 на странице бронирования\r\n $(\"#step1\").addClass('hidden');\r\n\r\n //- очищаем формы шага2 и шага3\r\n $(\"#booking2\")[0].reset(); //- очищаем форму деталей\r\n $(\"#booking2\").removeClass('was-validated'); //-убирает подсветку ошибок, если мы уже вносили данные на шаге 2\r\n $(\"#formsummary\")[0].reset(); //- очищаем итоговую форму\r\n\r\n //- устанавливаем дефолтные состояния у всех частей формы деталей и итоговой формы\r\n $(flexStep2).addClass(\"hidden\"); //- скрываем все части\r\n $(flexStep2 + \" input\").removeAttr(\"required\"); //- убираем у всех инпутов обязательность\r\n $(flexStep2 + \" select\").removeAttr(\"required\"); //- убираем у всех селектов обязательность\r\n \r\n //- Определяем какие части формы активировать (city-city, airport-city...)\r\n let from=$('#from').val();\r\n let to=$('#to').val();\r\n let curRoute=getRouteType(from, to);\r\n $(\"#headeroneway\").attr(\"typeroute\", curRoute);\r\n\r\n \r\n //- Активируем нужные части формы на шаге2\r\n curFlexStep2=\".step2__changepart[title='\"+curRoute+\"']\";\r\n \r\n $(curFlexStep2).removeClass('hidden');\r\n $(curFlexStep2 + \" select\").attr(\"required\", true); //делаем обязательными все селекты в активной части формы\r\n $(curFlexStep2 + \" input\").attr(\"required\", true); //делаем обязательными все инпуты в активной части формы\r\n setDefaultStructure(curFlexStep2); // устанавливаем состояния полей структур по-умолчанию \r\n\r\n // Формируем текст с пунктом отправления и назначения\r\n let locationName1=namesLocations[from];\r\n let locationName2=namesLocations[to];\r\n let strOneway=locationName1 + ' → ' + locationName2;\r\n let strRoundtrip=locationName2 + ' → ' + locationName1;\r\n\r\n $(\"#headeroneway\").text(strOneway);\r\n \r\n // Показывает/скрывает то, что относится к трансферу в обратном направлении\r\n if ($('#roundTripCheck').is(':checked')){\r\n $(\"#headerroundtrip\").text(strRoundtrip);\r\n $(curFlexStep2+\" .tripReturn\").removeClass('hidden');\r\n $(curFlexStep2+\" .tripReturn input\").prop('required', true);\r\n $(\".step3 .tripReturn\").removeClass('hidden');\r\n $('#booking2 .heading_rettangle').removeClass('hidden');\r\n }else{\r\n $(\".form-group-roundtrip\").addClass('hidden');\r\n $(curFlexStep2+\" .tripReturn input\").prop('required', false);\r\n $('.tripReturn').addClass('hidden');\r\n $('#booking2 .heading_rettangle').addClass('hidden');\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // Показывает число пассажиров и стоимость\r\n $(\"#headerpersons\").text($('#passengers').val());\r\n $(\"#headerprice\").text($('#price').val());\r\n\r\n // Показывает шаг2\r\n $('.step2').removeClass('hidden');\r\n\r\n // Скрывает шаг3\r\n $('.step3').addClass('hidden');\r\n \r\n window.scrollTo(0, 0); //показываем верх страницы\r\n\r\n}\r\n\r\n//- Получает тип формы, которую нужно показать (city/city, airport/city и т.д.)\r\nfunction getRouteType(from, to){ \r\n let point1 = airports.includes(from) ? \"airport\" : ports.includes(from) ? \"port\" : \"city\";\r\n let point2 = airports.includes(to) ? \"airport\" : ports.includes(to) ? \"port\" : \"city\";\r\n return typesRoutes[point1][point2];\r\n}\r\n\r\n// Заранее устанавливаем структуру по умолчанию в шаге 2\r\nfunction setDefaultStructure(curFlexPart){\r\n $(curFlexPart+\" .info-structure-group\").addClass('hidden'); //скрываем все структуры\r\n $(curFlexPart+\" .radio-item-hotel\").attr(\"checked\", true); //активируем переключатель Hotel\r\n $(curFlexPart+\" .info-hotel-group\").removeClass('hidden'); //показываем вкладку с полями для Hotel\r\n $(curFlexPart+\" .structure__wrap input\").removeAttr(\"required\"); //убираем все обязательные поля\r\n $(curFlexPart+\" .tripThere .info-hotel-group input\").attr(\"required\", true); //делаем обязательными поля вкладки Hotel на пути туда\r\n}\r\n\r\n\r\n//============================ BOOKING STEP 2 ================================//\r\n\r\n// Prepara l'info completo della struttura (per step 3)\r\n\r\nfunction getFullInfoStructure(context){ //strObj=\".booking2[title=\"+structureTitle+\"']\"\"\r\n //let struct=$(\"input:checked\", context).val(); //typeStructure1a, typeStructure2a, typeStructure3...\r\n let curRadio=$(\"input:checked\", context).attr(\"myid\"); //radiohotel, radiohouse, radiobb...\r\n let fullInfo;\r\n\r\n switch(curRadio){\r\n case \"radiohotel\":\r\n fullInfo=$(\".radio-item-hotel label\", context).text() + \" \" + $(\".info-hotel-group input\", context).val();\r\n break;\r\n case \"radiohouse\":\r\n fullInfo=$(\".radio-item-house label\", context).text() + \" \" + $(\".house-name\", context).val() + \" – \" + $(\".house-address\", context).val() + \", \" + $(\".house-number\", context).val() + \" – tel.\" + $(\".house-phone\", context).val();\r\n break;\r\n case \"radiobb\":\r\n fullInfo=$(\".radio-item-bb label\", context).text() + \" \" + $(\".bb-name\", context).val() + \" – \" + $(\".bb-address\", context).val() + \", \" + $(\".bb-number\", context).val() + \" – tel.\" + $(\".bb-phone\", context).val();\r\n break;\r\n default:\r\n fullInfo=$(\".radio-item-other label\", context).text() + \" \" + $(\".other-name\", context).val() + \" – \" + $(\".other-address\", context).val() + \", \" + $(\".other-number\", context).val() + \" – tel.\" + $(\".other-phone\", context).val();\r\n }\r\n\r\n return fullInfo;\r\n}\r\n\r\n\r\n// Переход к шагу 3 (Итог)\r\nfunction goToStep3(){\r\n\r\n let curFlexStep3;\r\n let varFullStructure; //полное инфо о структуре \r\n let varFullStructure1; //полное инфо о структуре 1\r\n let varFullStructure2; //полное инфо о структуре 2\r\n\r\n //проверяем выбран ли хоть один мессенджер\r\n if(isMessengerSelected() === false){\r\n $(\"#errorsModal .modal\").removeClass('hidden');\r\n $(\"#errorsModal .modal-messengers\").removeClass('hidden');\r\n $(\".form__messengers\").addClass('form__messengers--err');\r\n return false;\r\n }\r\n\r\n // проверяем валидность формы\r\n if(checkValidityForm(\"#booking2\", \".modal-step2\") === false){\r\n return false;\r\n }\r\n\r\n $(\"#formsummary\")[0].reset(); //очищаем итоговую форму на случай, если были какие-то изменения\r\n $(\"#booking2\").removeClass(\"was-validated\");// ?????\r\n $(\".form__messengers\").removeClass('form__messengers--err');\r\n $(\"#step2\").addClass('hidden');\r\n $(\".step3__changepart\").addClass(\"hidden\");\r\n $(\"#step3\").removeClass('hidden');\r\n window.scrollTo(0, 0);\r\n\r\n //- Получаем тип маршрута (city-city, airport-city...)\r\n let curRoute = $(\"#headeroneway\").attr(\"typeroute\");\r\n \r\n // Для проверки в php скрипте добавляем тип маршрута (city-city, airport-city...) и выбрано ли только туда или туда-обратно\r\n $('input[name=\"fromto\"]').val(curRoute);\r\n $('input[name=\"idroute\"]').val($(\"#roundTripCheck\").is(\":checked\"));\r\n\r\n let name=$(\"#booking2 input[name='name']\").val();\r\n let surname=$(\"#booking2 input[name='surname']\").val();\r\n let varFullName = name + \" \" + surname;\r\n\r\n let prefix=$(\"#booking2 select[name='prefix'] option:selected\").text();\r\n let phoneNumber=$(\"#booking2 input[name='phone']\").val();\r\n let varPhone = prefix + \" \" + phoneNumber;\r\n\r\n let varDirection1=$('#headeroneway').text();\r\n let varDirection2=$('#headerroundtrip').text();\r\n \r\n // Добавляем в итоговую форму полное имя\r\n $('#formsummary input[name=\"name\"]').val(varFullName);\r\n \r\n // Добавляем в итоговую форму email\r\n $('#formsummary input[name=\"email\"]').val($('#booking2 input[name=\"email\"]').val());\r\n\r\n // Добавляем в итоговую форму телефон\r\n $('#formsummary input[name=\"phone\"]').val(varPhone);\r\n\r\n // Добавляем в итоговую форму мессенджеры\r\n let allMess=\"\";\r\n $(\"#booking2 input[name='messengers']\").each(function (index, value){\r\n let curMess=$(value).val();\r\n if($(value).is(\":checked\")){\r\n $(\".\"+curMess).removeClass('hidden');\r\n allMess=allMess+curMess+\" \";\r\n }else{\r\n $(\".\"+curMess).addClass('hidden');\r\n }\r\n });\r\n $(\"#formsummary input[name='messengers']\").val(allMess);\r\n\r\n // Добавляем в итоговую форму маршрут откуда и куда\r\n $('#formsummary input[name=\"direction1\"]').val(varDirection1);\r\n\r\n // Добавляем в итоговую форму обратный маршрут откуда и куда (если заказан)\r\n curFlexStep3=\".step3__changepart[title='\"+curRoute+\"']\";\r\n if ($('#roundTripCheck').is(':checked')){\r\n $('#formsummary input[name=\"direction2\"]').val(varDirection2);\r\n $(\".step3 .tripReturn\").removeClass('hidden');\r\n $(\".step3 .tripReturn \"+curFlexStep3+\" input\").prop('required', true);\r\n }else{\r\n $(\".step3 .tripReturn \"+curFlexStep3+\" input\").prop('required', false);\r\n $('.step3 .tripReturn').addClass('hidden');\r\n }\r\n\r\n // Добавляем в итоговую форму полную информацию о структуре\r\n // (только для маршрутов city-city и -city, city-)\r\n if(curRoute==\"city-city\"){\r\n \r\n //- добавляем полное инфо о структуре1\r\n let objStructure1=$(\".structure__wrap:first\", \".step2__changepart[title='city-city']\");\r\n varFullStructure1=getFullInfoStructure(objStructure1);\r\n $('#formsummary input[name=\"structure1a\"]').val(varFullStructure1); \r\n \r\n //- добавляем полное инфо о структуре2\r\n let objStructure2=$(\".structure__wrap:last\", \".step2__changepart[title='city-city']\");\r\n varFullStructure2=getFullInfoStructure(objStructure2);\r\n $('#formsummary input[name=\"structure1b\"]').val(varFullStructure2); //-копируем инфо о структуре2 (полное) в итоговую ф.\r\n \r\n //- добавляем полное инфо о структурах для return trip\r\n $(\".sumStructure1\", \".step3__changepart[title='city-city']\").val(varFullStructure2);\r\n $(\".sumStructure2\", \".step3__changepart[title='city-city']\").val(varFullStructure1);\r\n\r\n }else if(curRoute.indexOf('city')!=-1){\r\n let objStructure=$(\".structure__wrap\", \".step2__changepart[title='\"+curRoute+\"']\");\r\n varFullStructure=getFullInfoStructure(objStructure);\r\n let objStructureName=objStructure.attr('title');\r\n $(\"#formsummary input[name='\"+objStructureName+\"']\").val(varFullStructure); //-копируем инфо о структуре (полное) в итоговую ф.\r\n $(\".sumStructure\", \".step3__changepart[title='\"+curRoute+\"']\").val(varFullStructure); //-копируем инфо о структуре (полное) в итоговую ф. для обратного пути \r\n\r\n } \r\n \r\n $(\".step3__changepart[title='\"+curRoute+\"']\").removeClass('hidden');\r\n\r\n //Копируем в итоговую форму данные из формы деталей (из шага 2)\r\n //- '.usualinput' - обычные инпуты, которые не нужно объединять с другой информацией\r\n $(\".step3 .usualinput\").each(function (index, value){\r\n var inputName=$(value).prop('name');\r\n $(value).val($(\".step2 input[name='\"+inputName+\"']\").val());\r\n });\r\n\r\n //Копируем в итоговую форму данные из формы Booking о пассажирах и маршруте (из шага 1)\r\n $('.summary-fromstep1').each(function (index, value){\r\n var inputName=$(value).prop('name');\r\n var varFromStep1=$('#booking input[name='+inputName+']').val();\r\n if(varFromStep1==0){\r\n $(value).val(''); //если значение поля 0, то делаем reset поля в итоговой форме (понадобится для php)\r\n $(value).parent('.summary-group').addClass('hidden');\r\n } else {\r\n $(value).val(varFromStep1);\r\n $(value).parent().removeClass('hidden'); \r\n }\r\n });\r\n\r\n // Копируем в итоговую форму поле <Сообщение>\r\n $(\"#formsummary input[name='message']\").val($('#booking2 textarea').val());\r\n\r\n // Для удобства чтения показываем инфо селектов в обычных div (селекты остаются скрыты)\r\n $('.from-select').each(function (index, value){ \r\n var selectName=$(value).prop('name');\r\n $(value).val($('#booking2 select[name='+selectName+'] option:selected').text());\r\n });\r\n \r\n // Для удобства чтения показываем инфо инпутов в обычных div (инпуты остаются скрыты)\r\n $('.summary-text-input').each(function (index, value){\r\n $(value).text($(this).siblings('input').val());\r\n });\r\n \r\n};\r\n\r\n// Verifica se è stato scelto almeno 1 messenger\r\nfunction isMessengerSelected() {\r\n let selected = false;\r\n // Itera attraverso gli input messengers\r\n $(\"#booking2 input[name='messengers']\").each((index, item) => {\r\n if ($(item).is(\":checked\")) {\r\n selected = true; // Imposta la variabile a true se trova un elemento selezionato\r\n return false; // Interrompe l'iterazione\r\n }\r\n });\r\n return selected; // Restituisce lo stato di selezione\r\n}\r\n\r\n\r\n\r\n//===========================================================================//\r\n//========= FUNCTIONS BOOKING TRANSFER CASE VINICOLE / EXCURSIONS ========== //\r\n//===========================================================================//\r\n\r\n// Функция передает информации о винодельне/ экскурсии на страницу заказа\r\n\r\nfunction moveInfoExcursionToBooking(fileName){\r\n var returnObj = JSON.parse(localStorage.getItem(\"myKey\"));\r\n if(returnObj == null){\r\n $(\".bookingexc-content\").addClass('hidden'),\r\n $(\"#invaliddata\").removeClass('hidden');\r\n return(false); \r\n }\r\n\r\n $(\"#datatitle\").val(returnObj['formtitle']);\r\n $(\".datatitle--visible\").text($(\"#datatitle\").val());\r\n \r\n // Добавляем для случая заказа экскурсий\r\n if(fileName===\"booking-excursion.php\"){\r\n $(\"#dataguide\").val(returnObj['formguide']);\r\n } \r\n \r\n $(\"#datapersons\").val(returnObj['formpersons']);\r\n $(\"#dataprice\").val(returnObj['formprice']);\r\n localStorage.removeItem(\"myKey\");\r\n}\r\n\r\n\r\n\r\n\r\n//===========================================================================//\r\n//========================= FUNCTION INVIO FORM ========================== //\r\n//===========================================================================//\r\n\r\nfunction doajax(activeform) {\r\n var formData = $(activeform).serialize();\r\n var actionUrl = $(activeform).attr('action');\r\n var idModal = (activeform === \"#form-contacts\") ? \"#formContactsResult\" : \"#formBookingResult\";\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: actionUrl,\r\n data: formData,\r\n \r\n success: function (msg) {\r\n msg = $.trim(msg);\r\n\r\n var modal = $(idModal + \" .modal\");\r\n var modalSuccess = $(idModal + \" .modal-success\");\r\n var modalErrorGeneral = $(idModal + \" .modal-error--general\");\r\n var modalErrorRequired = $(idModal + \" .modal-error--required\");\r\n\r\n modal.removeClass('hidden');\r\n\r\n if (msg === \"success\") {\r\n modalSuccess.removeClass('hidden');\r\n $(activeform)[0].reset();\r\n } else if (msg.indexOf(\"empty\") !== -1) {\r\n modalErrorRequired.removeClass('hidden');\r\n modalErrorRequired.find(\".modal__message\").empty().append(msg);\r\n } else {\r\n $(activeform)[0].reset();\r\n modalErrorGeneral.removeClass('hidden');\r\n modalErrorGeneral.find(\".modal__message\").empty().append(msg);\r\n }\r\n },\r\n beforeSend: function () {\r\n $(activeform).find(\":input\").prop(\"disabled\", true);\r\n $(activeform + \" .ajax-loader\").css(\"display\", \"block\");\r\n },\r\n complete: function () {\r\n $(activeform).find(\":input\").prop(\"disabled\", false);\r\n $(activeform + \" .ajax-loader\").css(\"display\", \"none\");\r\n }\r\n });\r\n}\r\n\r\n\r\n\r\n//- ================================================================//\r\n//- ========================= VERIFICHE ============================//\r\n//- ================================================================//\r\n\r\n\r\n///- ПРОВЕРКИ!!!!!!!!!\r\n// //Проверка нет ли в массивах с ценами направлений, которых нет в массиве всех направлений системы\r\n// $(document).ready(function () {\r\n// let myvar=Object.keys(arrSiracusa); //меняем массив для проверки\r\n// for(let i=1; i