{"version":3,"file":"./js/homeLanding/homeLanding.js","mappings":"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","sources":["webpack://ui-app/./Js/Pages/Tour/tourBooking.js","webpack://ui-app/./Js/Pages/Home/home.js","webpack://ui-app/./Js/Pages/Hotel/hotelBooking.js","webpack://ui-app/./Js/Pages/Flight/flightBooking.js","webpack://ui-app/./Js/Pages/Trip/tripBooking.js","webpack://ui-app/./Js/Pages/Insurance/insuranceBooking.js","webpack://ui-app/./Js/Pages/Rail/railBooking.js","webpack://ui-app/./Js/Diverse/Rating.js"],"sourcesContent":["var documentWidth = $(document).width();\r\n$(window).resize(function () {\r\n documentWidth = $(document).width();\r\n});\r\n\r\n$(function () {\r\n // close auto complete\r\n $(\".js-tour-booking\").delegate(\r\n \".js-close-auto-complete\",\r\n \"click\",\r\n function () {\r\n $(\".js-tour-booking-input\").autocomplete(\"close\");\r\n $(\".js-autocomplete-list>ul\").hide();\r\n $(\"html\").removeClass(\"no-scroll\");\r\n $(\".js-tour-booking-item\").removeClass(\"show-mobile\");\r\n }\r\n );\r\n\r\n // close auto complete list when click in out of it\r\n $(document).click(function (e) {\r\n if ($(e.target).closest(\"js-tour-booking\").length === 0) {\r\n $(\".js-autocomplete-list\").removeClass(\"show\");\r\n $(\".js-autocomplete-field\").removeClass(\"open\");\r\n }\r\n });\r\n\r\n // module four column tours hover effect\r\n $(\".four-column-tours__content .four-column-tours__card\").each(function () {\r\n $(this).hover(\r\n function () {\r\n $(this).siblings().addClass(\"small\");\r\n $(this).addClass(\"active\");\r\n },\r\n function () {\r\n $(this).siblings().removeClass(\"small\");\r\n $(this).removeClass(\"active\");\r\n }\r\n );\r\n });\r\n\r\n // update auto complete after type\r\n function getResult(input) {\r\n var dataUrl = \"/search/tour/\";\r\n if ($(input).val()) {\r\n dataUrl += $(input).val();\r\n }\r\n return dataUrl;\r\n }\r\n\r\n $(\".js-tour-booking-input\")\r\n .autocomplete({\r\n minLength: 0,\r\n source: function (request, response) {\r\n if (request.term === \"\") {\r\n var items = [\r\n {\r\n CoverUrl: null,\r\n Href: \"/fa/tours/france-tour/\",\r\n Id: 1,\r\n Slug: \"france-tour\",\r\n Title: \"تور فرانسه\",\r\n Type: 1,\r\n },\r\n ];\r\n\r\n response(items);\r\n } else {\r\n var url = getResult($(\".js-tour-booking-input\"));\r\n $.getJSON(url).done(function (serverResponse) {\r\n response(serverResponse.TourQuickSearchs);\r\n });\r\n }\r\n },\r\n appendTo: $(\".js-tour-booking-input\").next(),\r\n search: function () {\r\n if (documentWidth < 992) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n $(this).closest(\".js-tour-booking-item\").addClass(\"show-mobile\");\r\n }\r\n },\r\n open: function () {\r\n var inputObj = $(this);\r\n\r\n inputObj\r\n .next(\".js-autocomplete-list\")\r\n .children(\"ul\")\r\n .css({\r\n top: \"+=\" + 16,\r\n });\r\n },\r\n select: function (event, ui) {\r\n window.location = ui.item.Href;\r\n },\r\n focus: function (e, ui) {\r\n $(\".js-tour-booking-input\").attr(\"placeholder\", \"\");\r\n setTimeout(function () {\r\n $(\".js-tour-booking-input\").val(ui.item.Title);\r\n }, 1);\r\n },\r\n close: function (e, ui) {\r\n $(\".js-tour-booking-input\").attr(\"placeholder\", \"مقصد کجاست؟\");\r\n $(\".js-tour-booking-item\").removeClass(\"show-mobile\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n },\r\n })\r\n .bind(\"focus\", function () {\r\n $(this).keydown();\r\n })\r\n .autocomplete(\"instance\")._renderItem = function (ul, item) {\r\n var iconClass;\r\n switch (item.Type) {\r\n case 1:\r\n case 2:\r\n iconClass = \"icon-pin\";\r\n break;\r\n\r\n case 3:\r\n case 4:\r\n iconClass = \"icon-pin\";\r\n break;\r\n\r\n default:\r\n iconClass = \"icon-pin\";\r\n }\r\n\r\n return $(\"
  • \")\r\n .append(\r\n \" \" +\r\n item.Title +\r\n \"\"\r\n )\r\n .appendTo(ul);\r\n };\r\n\r\n // show datepicker or autocomplete list when click on parent box\r\n $(document).delegate(\".js-booking-field-wrapper\", \"click\", function (e) {\r\n if ($(this).find(\".js-tour-booking-input\").length) {\r\n if (\r\n !e.target.closest(\".js-tour-booking-input\") &&\r\n !e.target.closest(\".js-autocomplete-list\") &&\r\n !e.target.closest(\".js-close-auto-complete\")\r\n ) {\r\n $(this).find(\".js-tour-booking-input\").trigger(\"focus\");\r\n }\r\n }\r\n });\r\n\r\n $(document).delegate(\".js-search-filed\", \"focus\", function () {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".booking-search__field\")\r\n .addClass(\"booking-search__field--active\");\r\n }\r\n });\r\n\r\n $(document).delegate(\".js-search-filed\", \"blur\", function () {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".booking-search__field\")\r\n .removeClass(\"booking-search__field--active\");\r\n }\r\n });\r\n});\r\n","//initialize\r\nvar modelInitializer = new ModelInitializer();\r\nvar WithoutPriceModels = modelInitializer.Get(\"WithoutPriceModels\");\r\n\r\n//document ready\r\n$(function () {\r\n\r\n var sixSlider = $(\".js-six-sliders\");\r\n sixSlider.owlCarousel({\r\n loop: true,\r\n margin: 24,\r\n rtl: true,\r\n responsiveClass: true,\r\n autoWidth: false,\r\n dots: false,\r\n nav: true,\r\n // onTranslated: updateOpaqueItems,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n nav: false,\r\n autoWidth: true,\r\n margin: 16,\r\n },\r\n 768: {\r\n items: 4,\r\n autoWidth: false,\r\n margin: 16,\r\n },\r\n 1320: {\r\n items: 6,\r\n\r\n },\r\n },\r\n });\r\n\r\n\r\n\r\n //best-tours\r\n var tourSlider = $(\".js-best-tours\");\r\n\r\n tourSlider.owlCarousel({\r\n loop: false,\r\n rtl: true,\r\n margin: 24,\r\n nav: true,\r\n dots: false,\r\n items: 4,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n nav: false,\r\n autoWidth: true,\r\n margin: 8,\r\n },\r\n 768: {\r\n items: 3,\r\n autoWidth: false,\r\n },\r\n 1320: {\r\n items: 4,\r\n nav: true,\r\n margin: 24,\r\n },\r\n }\r\n });\r\n\r\n //users-comments\r\n $(\".js-users-comments\").owlCarousel({\r\n rtl: true,\r\n items: 1,\r\n loop: true,\r\n margin: 0,\r\n });\r\n\r\n //features\r\n if ($(window).width() < 992) {\r\n $(\".js-features\").owlCarousel({\r\n rtl: true,\r\n items: 1,\r\n loop: true,\r\n dots: true,\r\n margin: 0,\r\n });\r\n }\r\n\r\n\r\n //business logos\r\n $(\".js-business-logos\").owlCarousel({\r\n\r\n rtl: true,\r\n loop: true,\r\n margin: 0,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n margin: 50,\r\n center: true,\r\n autoWidth: true\r\n },\r\n 768: {\r\n items: 3,\r\n margin: 0,\r\n autoWidth: false\r\n },\r\n 992: {\r\n items: 6,\r\n margin: 0,\r\n autoWidth: false\r\n },\r\n },\r\n });\r\n\r\n //hotels slider\r\n var hotelSlider = $(\".js-hotel-slider\");\r\n \r\n hotelSlider.owlCarousel({\r\n loop: true,\r\n rtl: true,\r\n margin: 24,\r\n nav: true,\r\n dots: false,\r\n items: 4,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n nav: false,\r\n autoWidth: true,\r\n margin: 12,\r\n },\r\n 768: {\r\n items: 3,\r\n autoWidth: false,\r\n },\r\n 1320: {\r\n items: 4,\r\n nav: true,\r\n margin: 24,\r\n },\r\n }\r\n });\r\n\r\n // rating\r\n $(\".js-rating\").giveScore({\r\n TotalNum: 5,\r\n getScore: false,\r\n setScore: true,\r\n fontIcon: true,\r\n htmlelement: false,\r\n writeScore: false,\r\n getAndSet: false,\r\n iclasses: {\r\n unselect: \"icon-empty-star\",\r\n select: \"icon-star\",\r\n halfIcon: \"icon-half-star\"\r\n },\r\n });\r\n\r\n if (WithoutPriceModels.items && WithoutPriceModels.items.length) {\r\n window.getFlightMinimumPrice(WithoutPriceModels.items)\r\n }\r\n});\r\n\r\n//load more airlines \r\nif (document.body.contains(document.querySelector(\".js-toggle-more\"))) {\r\n\r\n document.querySelector(\".js-toggle-more\").addEventListener(\"click\", function toggleCards(e) {\r\n document.querySelector('.js-card-container').classList.toggle(\"three-columns__cards-container--show-all\");\r\n\r\n e.target.style.display = \"none\";\r\n });\r\n}\r\n\r\n\r\n\r\n","var sourceUrl;\r\nvar documentWidth = $(document).width();\r\n$(window).resize(function () {\r\n documentWidth = $(document).width();\r\n});\r\n\r\n$(function () {\r\n $(document).mouseup(function (e) {\r\n if (\r\n !$(\".js-rooms-options\").is(e.target) && // if the target of the click isn't the container...\r\n $(\".js-rooms-options\").has(e.target).length === 0\r\n ) {\r\n if ($(window).width() > 767) {\r\n // ... nor a descendant of the container\r\n $(\".js-rooms-options\").removeClass(\r\n \"hotel-booking__rooms-options--open\"\r\n );\r\n }\r\n }\r\n });\r\n\r\n hotelDatePicker();\r\n});\r\n\r\n// sort arrayObject\r\nfunction sortArrayObject(key, order = \"asc\") {\r\n return function (a, b) {\r\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\r\n // property doesn't exist on either object\r\n return 0;\r\n }\r\n\r\n var varA = typeof a[key] === \"string\" ? a[key].toUpperCase() : a[key];\r\n var varB = typeof b[key] === \"string\" ? b[key].toUpperCase() : b[key];\r\n\r\n var comparison = 0;\r\n\r\n if (varA > varB) {\r\n comparison = 1;\r\n } else if (varA < varB) {\r\n comparison = -1;\r\n }\r\n return order == \"desc\" ? comparison * -1 : comparison;\r\n };\r\n}\r\n\r\n$(function () {\r\n //close autoComplete in mobile\r\n\r\n $(\".js-hotel-cities\").delegate(\r\n \".js-close-auto-complete\",\r\n \"click\",\r\n function () {\r\n $(\".js-close\").closest(\".focused\").removeClass(\"focused\");\r\n $(\".js-mobile-layout\").show();\r\n $(\"#js-hotel-city\").hotelAutoComplete(\"close\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n if ($(window).width() < 992) {\r\n $(\".js-search-input\").removeClass(\"show-mobile\");\r\n }\r\n }\r\n );\r\n});\r\n\r\nvar hotelList;\r\n\r\n//autoComplete\r\nfunction hotelSearch() {\r\n $(\".js-tab-nav li\").each(function () {\r\n if ($(this).hasClass(\"active\")) {\r\n if (\r\n $(\".js-tab-nav\").find(\"li.active\").attr(\"data-searchType\") ===\r\n \"internal-hotel\"\r\n ) {\r\n hotelList = internalHotelList;\r\n $(\".js-hotel-form #js-hotel-city\").each(function () {\r\n hotelAutoSearch($(this), 2);\r\n });\r\n } else {\r\n hotelList = externalHotelList;\r\n $(\".js-hotel-form #js-hotel-city\").each(function () {\r\n hotelAutoSearch($(this), 1);\r\n });\r\n }\r\n }\r\n });\r\n\r\n $(\".js-tab-nav .js-tab-nav-header .tab-link\").on(\"click\", function (e) {\r\n e.preventDefault();\r\n\r\n setTimeout(function () {\r\n if (\r\n $(\".js-tab-nav\").find(\"li.active\").attr(\"data-searchType\") ===\r\n \"internal-hotel\"\r\n ) {\r\n hotelList = internalHotelList;\r\n $(\".js-hotel-form #js-hotel-city\").each(function () {\r\n hotelAutoSearch($(this), 2);\r\n });\r\n } else {\r\n hotelList = externalHotelList;\r\n $(\".js-hotel-form #js-hotel-city\").each(function () {\r\n hotelAutoSearch($(this), 1);\r\n });\r\n }\r\n }, 0);\r\n });\r\n\r\n\r\n $(\".js-hotel-form #js-hotel-city\").each(function () {\r\n if ($(this).attr(\"data-searchType\")) {\r\n if ($(this).attr(\"data-searchType\") == \"internal-hotel\") {\r\n hotelAutoSearch($(this), 2);\r\n } else if ($(this).attr(\"data-searchType\") == \"external-hotel\") {\r\n hotelAutoSearch($(this), 1);\r\n }\r\n }\r\n });\r\n}\r\n\r\n$.widget(\"custom.hotelAutoComplete\", $.ui.autocomplete, {\r\n _renderMenu: function (ul, items) {\r\n var that = this;\r\n $.each(items, function (index, item) {\r\n if (Object.keys(item).length) {\r\n that._renderItemData(ul, item);\r\n }\r\n });\r\n },\r\n _renderItem: function (ul, item) {\r\n var li = \"\";\r\n if (Object.keys(item).length) {\r\n var className = item.destinationType === 2 ? \"rtl\" : \"ltr\";\r\n\r\n ul.removeClass(\"rtl ltr\");\r\n\r\n ul.addClass(className);\r\n\r\n var location;\r\n\r\n if (item.destinationType === 1) {\r\n location =\r\n item.locationType === 1 ? `${item.countryTitle}` : `${item.countryTitle + \" , \" + item.cityTitle}`;\r\n } else {\r\n location =\r\n item.locationType === 2 ? `${item.cityTitle}` : null;\r\n }\r\n\r\n\r\n var icon = item.locationType === 1 ? \"icon-pin \" : \"icon-hotel\";\r\n li +=\r\n '
  • ' +\r\n \"\" +\r\n \"\" +\r\n '' +\r\n item.label +\r\n \"\";\r\n li += \"\";\r\n\r\n if (location) {\r\n li += location;\r\n }\r\n\r\n li += \"
  • \";\r\n }\r\n\r\n return $(li).appendTo(ul);\r\n },\r\n});\r\n// hotel auto search\r\nfunction hotelAutoSearch($this, $destinationType) {\r\n $this\r\n .hotelAutoComplete({\r\n minLength: 0,\r\n appendTo: $this.next(\".js-hotel-search-list\"),\r\n delay: 400,\r\n search: function () {\r\n $(this).parent().find(\".js-search-loading\").show();\r\n if (documentWidth < 992) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n },\r\n source: function (request, response) {\r\n if ($this.val() && hotelList !== null) {\r\n $this.parent().find(\".js-search-loading\").show();\r\n $.ajax({\r\n url:\r\n \"/hotelbooking-api/searchtitle/\" +\r\n request.term +\r\n \"/?destinationType=\" +\r\n $destinationType,\r\n dataType: \"json\",\r\n success: function (data) {\r\n //hotel\r\n $this.parent().find(\".js-search-loading\").hide();\r\n response(\r\n $.map(data.model, function (obj) {\r\n return {\r\n value: obj.title,\r\n hotelTitle: obj.title,\r\n hotelSlug: obj.slug,\r\n cityTitle: obj.cityTitle,\r\n citySlug: obj.citySlug,\r\n countrySlug: obj.countrySlug,\r\n countryTitle: obj.countryTitle,\r\n locationType: obj.locationType,\r\n destinationType: obj.destinationType,\r\n id: obj.id,\r\n isRtl: obj.isRtl,\r\n dir: obj.dir,\r\n };\r\n })\r\n );\r\n },\r\n error: function () {\r\n $this.parent().find(\".js-search-loading\").hide();\r\n },\r\n });\r\n } else {\r\n return response(hotelList);\r\n }\r\n },\r\n open: function () {\r\n //off autocomplete in chrome\r\n let chromeAgent = navigator.userAgent.indexOf(\"Chrome\") != -1;\r\n if (chromeAgent) {\r\n $this.attr(\"autocomplete\", \"disable-autocomplete\");\r\n }\r\n\r\n var inputObj = $(this);\r\n inputObj\r\n .next(\".js-hotel-search-list\")\r\n .children(\"ul\")\r\n .css({\r\n top: \"+=\" + 16,\r\n });\r\n $this.addClass(\"focusedInput\");\r\n $(\".ui-autocomplete\").off(\"menufocus hover mouseover mouseenter\");\r\n if ($(window).width() < 992) {\r\n // $(\".js-search-input\").addClass(\"show-mobile\");\r\n }\r\n },\r\n close: function () {\r\n $this.removeClass(\"focusedInput\");\r\n if ($(window).width() < 992) {\r\n //$(\".js-search-input\").removeClass(\"show-mobile\");\r\n }\r\n\r\n if ($(\"html\").hasClass(\"no-scroll\")) {\r\n $(\"html\").removeClass(\"no-scroll\");\r\n }\r\n },\r\n select: function (e, ui) {\r\n hotelDataModel.hotelTitle = ui.item.hotelTitle || ui.item.title;\r\n\r\n hotelDataModel.hotelSlug = ui.item.hotelSlug || ui.item.slug;\r\n\r\n hotelDataModel.cityTitle = ui.item.cityTitle;\r\n\r\n hotelDataModel.citySlug = ui.item.citySlug;\r\n\r\n hotelDataModel.countryTitle = ui.item.countryTitle;\r\n\r\n hotelDataModel.countrySlug = ui.item.countrySlug;\r\n\r\n hotelDataModel.locationType = ui.item.locationType;\r\n\r\n hotelDataModel.destinationType = ui.item.destinationType;\r\n\r\n hotelDataModel.id = ui.item.id;\r\n\r\n hotelDataModel.dir = ui.item.dir;\r\n\r\n /////////////\r\n\r\n $this.removeClass(\"empty\");\r\n $this.closest(\".js-search-input\").addClass(ui.item.dir);\r\n\r\n $this.attr(\"data-value\", ui.item.value);\r\n\r\n $this.parent().find(\".error-message\").remove();\r\n $this.removeClass(\"notValid\");\r\n\r\n $this.parent().find(\".js-search-loading\").hide();\r\n\r\n $this\r\n .siblings(\".js-hotel-input-layout\")\r\n .html(\"\" + ui.item.value + \"\");\r\n\r\n $this.closest(\".js-search-input\").removeClass(\"show-mobile\");\r\n\r\n $(\"html\").removeClass(\"no-scroll\");\r\n\r\n if (documentWidth < 992) {\r\n $(this).trigger(\"blur\");\r\n $this.parent().find(\".js-search-loading\").hide();\r\n } else {\r\n $this\r\n .closest(\".js-hotel-form\")\r\n .find(\".js-hotel-check-in-date\")\r\n .trigger(\"focus\");\r\n }\r\n },\r\n change: function (event, ui) { },\r\n })\r\n .bind(\"focus\", function () {\r\n $(this).hotelAutoComplete(\"search\");\r\n $this.parent().find(\".js-search-loading\").hide();\r\n $(this).attr(\"placeholder\", \"جستجوی مقصد ( شهر، هتل یا اقامتگاه)\");\r\n })\r\n .bind(\"blur\", function () {\r\n $this.parent().find(\".js-search-loading\").hide();\r\n $(this).attr(\"placeholder\", \"جستجوی مقصد ( شهر، هتل یا اقامتگاه)\");\r\n if (!$(this).hasClass(\"empty\")) $(this).val($(this).attr(\"data-value\"));\r\n });\r\n}\r\n$(\"body\").delegate(\".js-hotel-input-layout\", \"click\", function () {\r\n $(this).closest(\".js-search-input\").addClass(\"show-mobile\");\r\n $(\"html\").addClass(\"no-scroll\");\r\n $(this).next().trigger(\"focus\");\r\n $(\"#js-hotel-city\").hotelAutoComplete(\"search\");\r\n});\r\n//toggle room detail\r\n$(\"body\").delegate(\".js-rooms-toggle\", \"click\", function () {\r\n $(this).toggleClass(\"hotel-booking__rooms-options--open\");\r\n if (documentWidth < 992) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n checkAlignBox();\r\n});\r\n\r\n//room close\r\n$(\"body\").delegate(\".js-room-close, .js-rooms-confirm\", \"click\", function () {\r\n $(\".js-rooms-toggle\").removeClass(\"hotel-booking__rooms-options--open\");\r\n if ($(\"html\").hasClass(\"no-scroll\")) {\r\n $(\"html\").removeClass(\"no-scroll\");\r\n }\r\n});\r\n\r\n//check form validation\r\nfunction checkValidation() {\r\n var valid = true;\r\n\r\n $(\".js-booking-section.active .js-hotel-form .error-message\").remove();\r\n\r\n if (!window.defaultHotelInformation) {\r\n if (hotelDataModel.hotelTitle === \"\" ||\r\n $('.js-tab-content-item.active input[name=\"hotel-city\"]').val() === \"\") {\r\n valid = false;\r\n }\r\n }\r\n\r\n if (\r\n hotelDataModel.hotelStartDateEn === \"\" ||\r\n hotelDataModel.hotelEndDateEn === \"\"\r\n ) {\r\n valid = false;\r\n }\r\n\r\n if (!valid) {\r\n $(\".js-booking-section.active .js-hotel-form\").append(\r\n `لطفا همه فیلدها رو پر کنید`\r\n );\r\n }\r\n\r\n var startDate = moment(hotelDataModel.hotelStartDateEn);\r\n\r\n var endDate = moment(hotelDataModel.hotelEndDateEn);\r\n\r\n var dateDifference = endDate.diff(startDate, \"days\");\r\n\r\n if (dateDifference > 20) {\r\n $(\".js-hotel-form .js-hotel-booking-date\").append(\r\n 'بازه تاریخ ورود و برگشت نباید بیشتر از 20 روز باشد.'\r\n );\r\n\r\n valid = false;\r\n }\r\n\r\n return valid;\r\n}\r\n\r\n//search event\r\n$(\"body\").delegate(\".js-hotel-search\", \"click\", function () {\r\n\r\n var adultsString = \"\",\r\n childString = \"\",\r\n childAgeString = \"\";\r\n\r\n $.each(hotelDataModel.rooms, function (i, room) {\r\n adultsString += \"&a=\" + room.adult;\r\n\r\n childString += \"&c=\" + room.child;\r\n\r\n $.each(room.childs, function (j, child) {\r\n childAgeString += \"&g=\" + Number(child - 1);\r\n });\r\n });\r\n\r\n var url = \"/fa/hotel/\";\r\n\r\n var valid = checkValidation();\r\n\r\n if (!valid) {\r\n return;\r\n }\r\n\r\n var hotelId = hotelDataModel.id;\r\n var locationType = hotelDataModel.locationType;\r\n\r\n if (window.defaultHotelInformation) {\r\n hotelId = window.defaultHotelInformation.id;\r\n locationType = 2;\r\n\r\n url +=\r\n window.defaultHotelInformation.countrySlug +\r\n \"/\" +\r\n window.defaultHotelInformation.citySlug +\r\n \"/\" +\r\n window.defaultHotelInformation.hotelSlug;\r\n } else {\r\n if (hotelDataModel.locationType === 1) {\r\n url += hotelDataModel.countrySlug + \"/\" + hotelDataModel.citySlug;\r\n } else if (hotelDataModel.locationType === 2) {\r\n url +=\r\n hotelDataModel.countrySlug +\r\n \"/\" +\r\n hotelDataModel.citySlug +\r\n \"/\" +\r\n hotelDataModel.hotelSlug;\r\n }\r\n }\r\n\r\n url +=\r\n \"/?i=\" +\r\n hotelDataModel.hotelStartDateEn +\r\n \"&o=\" +\r\n hotelDataModel.hotelEndDateEn +\r\n \"&r=\" +\r\n hotelDataModel.roomsCount +\r\n \"&n=\" +\r\n \"&d=\" +\r\n hotelId +\r\n adultsString +\r\n childString +\r\n childAgeString;\r\n\r\n if (hotelDataModel.dataPickerFormat === \"fa\") {\r\n url += \"&dpf=fa\";\r\n } else {\r\n url += \"&dpf=en\";\r\n }\r\n\r\n window.location.assign(url);\r\n});\r\n\r\n// hotel booking\r\n\r\n//static data\r\nadultCountArray = [\"1 بزرگسال\", \"2 بزرگسال\", \"3 بزرگسال\", \"4 بزرگسال\"];\r\nchildCountArray = [\"0 کودک\", \"1 کودک\", \"2 کودک\", \"3 کودک\", \"4 کودک\"];\r\nchildAgesArray = [\r\n \"0 - 1\",\r\n \"1 - 2\",\r\n \"2 - 3 \",\r\n \"3 - 4 \",\r\n \"4 - 5 \",\r\n \"5 - 6 \",\r\n \"6 - 7 \",\r\n \"7 - 8 \",\r\n \"8 - 9 \",\r\n \"9 - 10 \",\r\n \"10 - 11 \",\r\n \"11 - 12 \",\r\n];\r\n\r\nvar hotelDataModel = {\r\n hotelTitle: \"\",\r\n hotelSlug: \"\",\r\n cityTitle: \"\",\r\n citySlug: \"\",\r\n countryTitle: \"\",\r\n countrySlug: \"\",\r\n hotelEndDate: \"\",\r\n hotelEndDateEn: \"\",\r\n hotelStartDate: \"\",\r\n hotelStartDateEn: \"\",\r\n dataPickerFormat: \"\",\r\n locationType: 1,\r\n daysDuration: null,\r\n roomsCount: 1,\r\n childLabels: [],\r\n dir: \"rtl\",\r\n childsCount: 0,\r\n adultsCount: 0,\r\n rooms: [\r\n {\r\n room: 1,\r\n adult: 2,\r\n child: 0,\r\n childs: [],\r\n },\r\n ],\r\n};\r\n\r\nvar hotelInput = [];\r\n\r\n//add or remove room\r\nvar roomNum;\r\n$(\"body\").delegate(\".js-hotel-form .js-count-box button\", \"click\", function () {\r\n if ($(this).hasClass(\"js-max\")) {\r\n if (hotelDataModel.roomsCount < 4) {\r\n roomNum = hotelDataModel.roomsCount + 1;\r\n\r\n hotelDataModel.roomsCount = roomNum;\r\n\r\n hotelDataModel.rooms.push({\r\n room: roomNum,\r\n adult: 1,\r\n child: 0,\r\n childs: [],\r\n });\r\n }\r\n } else if ($(this).hasClass(\"js-min\")) {\r\n if (hotelDataModel.roomsCount > 1) {\r\n roomNum = hotelDataModel.roomsCount - 1;\r\n\r\n hotelDataModel.roomsCount = roomNum;\r\n\r\n hotelDataModel.rooms.pop();\r\n }\r\n }\r\n updateTemplate(hotelDataModel);\r\n});\r\n\r\n// select adult count\r\n$(\"body\").delegate(\"select.js-rooms-adult-count\", \"change\", function () {\r\n var roomIndex = $(this).closest(\"ul\").attr(\"data-row\");\r\n\r\n hotelDataModel.rooms[roomIndex].adult = Number($(this).val()) + 1;\r\n\r\n updateTemplate(hotelDataModel);\r\n});\r\n\r\n//in mobile\r\n$(\"body\").delegate(\".adults-number-InMobile>button\", \"click\", function () {\r\n var roomIndex = $(this).closest(\"ul\").attr(\"data-row\");\r\n\r\n var roomNumber = $(this).hasClass(\"js-add\")\r\n ? Number($(this).siblings(\"input\").val()) + 1\r\n : Number($(this).siblings(\"input\").val()) - 1;\r\n\r\n $(this).siblings(\"input\").val(roomNumber);\r\n\r\n hotelDataModel.rooms[roomIndex].adult = Number(roomNumber);\r\n\r\n updateTemplate(hotelDataModel);\r\n});\r\n\r\n//select child count\r\n$(\"body\").delegate(\"select.js-rooms-child-count\", \"change\", function () {\r\n var roomIndex = $(this).closest(\"ul\").attr(\"data-row\");\r\n\r\n hotelDataModel.rooms[roomIndex].child = Number($(this).val());\r\n\r\n var oldChildCount = hotelDataModel.rooms[roomIndex].childs.length;\r\n\r\n var selectedChildCount = Number($(this).val());\r\n\r\n if (selectedChildCount === oldChildCount) return;\r\n\r\n var newChildCount = 0;\r\n\r\n if (selectedChildCount > oldChildCount) {\r\n newChildCount = selectedChildCount - oldChildCount;\r\n for (i = 0; i < newChildCount; i++) {\r\n hotelDataModel.rooms[roomIndex].childs.push(1);\r\n }\r\n } else {\r\n newChildCount = oldChildCount - selectedChildCount;\r\n for (i = 0; i < newChildCount; i++) {\r\n hotelDataModel.rooms[roomIndex].childs.pop();\r\n }\r\n }\r\n updateTemplate(hotelDataModel);\r\n});\r\n////select child count In mobile\r\n$(\"body\").delegate(\".childs-count-InMobile>button\", \"click\", function () {\r\n var roomIndex = $(this).closest(\"ul\").attr(\"data-row\");\r\n\r\n var selectedChildCount = $(this).hasClass(\"js-add\")\r\n ? Number($(this).siblings(\"input\").val()) + 1\r\n : Number($(this).siblings(\"input\").val()) - 1;\r\n\r\n if (selectedChildCount > 4 || selectedChildCount < 0) return;\r\n\r\n $(this).siblings(\"input\").val(selectedChildCount);\r\n\r\n hotelDataModel.rooms[roomIndex].child = selectedChildCount;\r\n\r\n var oldChildCount = hotelDataModel.rooms[roomIndex].childs.length;\r\n\r\n // var selectedChildCount = Number($(this).val());\r\n\r\n if (selectedChildCount === oldChildCount) return;\r\n\r\n var newChildCount = 0;\r\n\r\n if (selectedChildCount > oldChildCount) {\r\n newChildCount = selectedChildCount - oldChildCount;\r\n for (i = 0; i < newChildCount; i++) {\r\n hotelDataModel.rooms[roomIndex].childs.push(1);\r\n }\r\n } else {\r\n newChildCount = oldChildCount - selectedChildCount;\r\n for (i = 0; i < newChildCount; i++) {\r\n hotelDataModel.rooms[roomIndex].childs.pop();\r\n }\r\n }\r\n updateTemplate(hotelDataModel);\r\n});\r\n\r\n//select childs Age\r\n$(\"body\").delegate(\"select.js-child-age\", \"change\", function () {\r\n var roomIndex = $(this).closest(\"ul\").attr(\"data-row\");\r\n\r\n var childAgeIndex = Number($(this).attr(\"name\"));\r\n\r\n var childAge = Number($(this).val()) + 1;\r\n\r\n hotelDataModel.rooms[roomIndex].childs[childAgeIndex] = childAge;\r\n\r\n updateTemplate(hotelDataModel);\r\n});\r\n\r\n////////////////////////////\r\n$(\"body\").delegate(\".js-room-remove\", \"click\", function () {\r\n var roomIndex = $(this).closest(\"ul\").attr(\"data-row\");\r\n\r\n hotelDataModel.rooms.splice(Number(roomIndex), 1);\r\n hotelDataModel.roomsCount = hotelDataModel.roomsCount - 1;\r\n updateTemplate();\r\n});\r\n\r\n//update Data\r\nfunction updateDates() {\r\n hotelDataModel.hotelStartDateEn = $(\r\n \".js-booking-section.active .js-hotel-check-in-date\"\r\n )\r\n .next()\r\n .val();\r\n\r\n hotelDataModel.hotelEndDateEn = $(\r\n \".js-booking-section.active .js-hotel-check-out-date\"\r\n )\r\n .next()\r\n .val();\r\n\r\n hotelDataModel.hotelStartDate = $(\r\n \".js-booking-section.active .js-hotel-check-in-date\"\r\n ).val();\r\n\r\n hotelDataModel.hotelEndDate = $(\r\n \".js-booking-section.active .js-hotel-check-out-date\"\r\n ).val();\r\n\r\n hotelDataModel.dataPickerFormat = $(\r\n \".js-booking-section.active .js-hotel-check-out-date\"\r\n ).attr(\"data-lang\");\r\n}\r\n\r\n//update Template\r\nfunction updateTemplate() {\r\n //get adultCount\r\n hotelDataModel.adultsCount = 0;\r\n hotelDataModel.childsCount = 0;\r\n $.each(hotelDataModel.rooms, function (key, room) {\r\n hotelDataModel.adultsCount += room.adult;\r\n hotelDataModel.childsCount += room.child;\r\n });\r\n //check if rooms menu is open after update open it\r\n var flag = false;\r\n if ($(\".js-rooms-toggle\").hasClass(\"hotel-booking__rooms-options--open\")) {\r\n flag = true;\r\n }\r\n\r\n var labelsArray = countLabelNumbers(hotelDataModel.rooms);\r\n hotelDataModel.childLabels = labelsArray;\r\n\r\n $(\"#js-hotel-booking\").html($(\"#js-hotel-template\").tmpl(hotelDataModel));\r\n $(\"#js-internal-hotel-booking\").html(\r\n $(\"#js-hotel-template\").tmpl(hotelDataModel)\r\n );\r\n\r\n if (flag) {\r\n $(\".js-rooms-toggle\").addClass(\"hotel-booking__rooms-options--open\");\r\n }\r\n\r\n checkAlignBox();\r\n hotelSearch();\r\n hotelDatePicker();\r\n}\r\n//check align of rooms details menu\r\nfunction checkAlignBox() {\r\n if (\r\n $(\".js-hotel-form\").offset().left > $(\".js-options-rooms\").offset().left &&\r\n $(\".rooms-toggleBtn\").hasClass(\"hotel-booking__rooms-options--open\")\r\n ) {\r\n $(\".js-rooms-options\").addClass(\"align-left\");\r\n } else {\r\n $(\".js-rooms-options\").removeClass(\"align-left\");\r\n }\r\n}\r\n\r\nfunction countLabelNumbers(rooms) {\r\n var childsLabel = [\"بزرگسال\", \"کودک\"];\r\n var max = 0;\r\n for (var i = 0; i < rooms.length; i++) {\r\n if (rooms[i].childs.length > max) {\r\n max = rooms[i].childs.length;\r\n }\r\n }\r\n for (var j = 0; j < max; j++) {\r\n childsLabel.push(\"سن کودک \" + (j + 1));\r\n }\r\n return childsLabel;\r\n}\r\n\r\n//check diff\r\nfunction calcDiffDate() {\r\n var startDate = moment(hotelDataModel.hotelStartDateEn);\r\n var endDate = moment(hotelDataModel.hotelEndDateEn);\r\n\r\n const duration = endDate.diff(startDate, \"days\");\r\n const daysDuration = duration > 0 ? duration : '-';\r\n\r\n return daysDuration;\r\n}\r\n\r\nfunction hotelDatePicker() {\r\n setTimeout(function () {\r\n $(\".js-hotel-form .js-hotel-booking-date\").pickDate({\r\n // dateFormat: \"dd MM yy\",\r\n // dateFormatEn: \"yy M dd\",\r\n changeMonthAllow: false,\r\n changeYearAllow: false,\r\n showButtonPanel: true,\r\n isDependenceDates: false,\r\n showCurrentAtPos: 0,\r\n numberOfMonths: $(window).width() > 991 ? 2 : 1,\r\n minDate: -0,\r\n customClass: \"lightTheme\",\r\n showAllMonthsinList: false,\r\n langType: $(\".js-tab-content-item.active\").hasClass(\"js-external-flight\")\r\n ? \"en\"\r\n : \"fa\",\r\n blurInmobile: true,\r\n dayNamesShortFa: [\r\n \"1شنبه\",\r\n \"2شنبه\",\r\n \"3شنبه\",\r\n \"4شنبه\",\r\n \"5شنبه\",\r\n \"جمعه\",\r\n \"شنبه\",\r\n ],\r\n enterDateTitle: \"تاریخ ورود\",\r\n exitDateTitle: \"تاریخ خروج\",\r\n enterDateTitleEn: \"Check in\",\r\n exitDateTitleEn: \"Check out\",\r\n dayNamesShortEn: [\"Su\", \"Mo\", \"TU\", \"We\", \"Th\", \"Fr\", \"Sa\"],\r\n onSelectEvent: function () {\r\n if ($(this).hasClass(\"pickDate_2\")) {\r\n var daysDurationParam = calcDiffDate();\r\n hotelDataModel.daysDuration = daysDurationParam;\r\n $(\".js-tab-content-item.active .js-hotel-booking-night-count\")\r\n .html(\"\" + hotelDataModel.daysDuration)\r\n .addClass(\"show\");\r\n } else {\r\n hotelDataModel.daysDuration = null;\r\n $(\r\n \".js-tab-content-item.active .js-hotel-booking-night-count\"\r\n ).removeClass(\"show\");\r\n }\r\n\r\n updateDates($(this));\r\n\r\n //focus the next input\r\n if (\r\n $(this).hasClass(\"js-hotel-check-in-date\") &&\r\n $(window).width() > 992\r\n ) {\r\n setTimeout(function () {\r\n $(\".js-hotel-check-out-date\").trigger(\"focus\");\r\n }, 10);\r\n }\r\n\r\n //updateTemplate(hotelDataModel);\r\n },\r\n fillHidden: {\r\n enable: true,\r\n outPut: \"en\", //en | Dependent_On_SelectedDate | fa\r\n customformatInhidden: \"YYYY-MM-DD\",\r\n },\r\n });\r\n }, 100);\r\n}\r\n\r\nupdateTemplate();\r\n\r\n$(\"body\").on(\"click\", function (e) {\r\n if (!$(e.target).closest(\".js-rooms-options\").length) {\r\n if ($(\".js-rooms-toggle\").hasClass(\"hotel-booking__rooms-options--open\")) {\r\n $(\".js-rooms-toggle\").removeClass(\"hotel-booking__rooms-options--open\");\r\n }\r\n }\r\n});\r\n\r\n// show datepicker or autocomplete list when click on parent box\r\n$(document).delegate(\".js-booking-field\", \"click\", function (e) {\r\n if ($(this).find(\".js-hotel-auto-search\").length) {\r\n if (\r\n !e.target.closest(\".js-hotel-auto-search\") &&\r\n !e.target.closest(\".js-hotel-search-list\") &&\r\n !e.target.closest(\".js-close-auto-complete\")\r\n ) {\r\n $(this).find(\".js-hotel-auto-search\").trigger(\"focus\");\r\n }\r\n }\r\n\r\n if (\r\n $(this).find(\".js-hotel-check-in-date\").length &&\r\n !e.target.closest(\".js-hotel-check-in-date\")\r\n ) {\r\n $(this).find(\".js-hotel-check-in-date.hasDatepicker\").datepicker(\"show\");\r\n }\r\n\r\n if (\r\n $(this).find(\".js-hotel-check-out-date\").length &&\r\n !e.target.closest(\".js-hotel-check-out-date\")\r\n ) {\r\n $(this).find(\".js-hotel-check-out-date.hasDatepicker\").datepicker(\"show\");\r\n }\r\n\r\n if (\r\n $(this).find(\".js-rooms-options\").length &&\r\n !e.target.closest(\".js-rooms-options\")\r\n ) {\r\n $(\".js-rooms-toggle\").click();\r\n }\r\n});\r\n\r\n$(document).delegate(\".js-search-filed\", \"focus\", function () {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".booking-search__field\")\r\n .addClass(\"booking-search__field--active\");\r\n }\r\n});\r\n\r\n$(document).delegate(\".js-search-filed\", \"blur\", function () {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".booking-search__field \")\r\n .removeClass(\"booking-search__field--active\");\r\n }\r\n});\r\n","var documentWidth = $(document).width();\r\nvar sourceUrl;\r\nvar citylist;\r\nvar routeRowTemplate = ``;\r\n// Traveller Count Form\r\nvar sum;\r\n\r\n$(window).resize(function () {\r\n documentWidth = $(document).width();\r\n});\r\n\r\n$(function () {\r\n datePicker();\r\n\r\n radioCheckedValue = $(\r\n \".js-flight .js-routes-select input:radio:checked\"\r\n ).val();\r\n routesTypeCheck(radioCheckedValue);\r\n\r\n // show more description in property\r\n $(\".js-show-more\").on(\"click\", function () {\r\n $(\".js-property-footer-content\").toggleClass(\"auto-height\");\r\n $(this).toggleClass(\"active\");\r\n });\r\n\r\n $(\".js-flight-booking-infant-info\").click(function () {\r\n $(this)\r\n .closest(\".js-travelers\")\r\n .find(\".js-flight-booking-infant-description\")\r\n .slideDown();\r\n });\r\n\r\n $(\".js-flight .js-auto-search\").each(function () {\r\n autoSearch($(this));\r\n });\r\n\r\n $(\".js-flight-tab\").click(function () {\r\n routesTypeCheck(radioCheckedValue);\r\n });\r\n\r\n $(\".js-flight .js-count-box .js-max\").click(function () {\r\n var $this = $(this).closest(\".js-travelers\");\r\n\r\n if (sum < 9) {\r\n $this.find(\".js-validation-economy\").text(\"\");\r\n\r\n var num = Number($(this).parent().find(\".js-number-passenger\").text());\r\n\r\n var temp = num + 1;\r\n\r\n var babyNumber = Number(\r\n $this.find(\".js-passenger-infant\").find(\".js-number-passenger\").text()\r\n );\r\n\r\n var adultNumber = Number(\r\n $this.find(\".js-passenger-adult\").find(\".js-number-passenger\").text()\r\n );\r\n\r\n if ($(this).closest(\"li\").hasClass(\"js-passenger-adult\")) {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $(this)\r\n .closest(\".js-economy-target\")\r\n .find(\".js-flight-adults-number\")\r\n .text(temp);\r\n } else if ($(this).closest(\"li\").hasClass(\"js-passenger-infant\")) {\r\n if (babyNumber < adultNumber) {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $(this)\r\n .closest(\".js-economy-target\")\r\n .find(\".js-flight-infant-number\")\r\n .text(temp);\r\n } else {\r\n $(\".js-validation-economy\").text(\r\n \"تعداد نوزاد نمی تواند بیشتر از تعداد بزرگسال باشد\"\r\n );\r\n }\r\n } else {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $(this)\r\n .closest(\".js-economy-target\")\r\n .find(\".js-flight-child-number\")\r\n .text(temp);\r\n }\r\n\r\n calcSum($(this).closest(\".js-economy-target\"));\r\n } else {\r\n $this\r\n .find(\".js-validation-economy\")\r\n .text(\"تعداد کل مسافرین نمیتواند بیشتر از 9 نفر باشد\");\r\n }\r\n });\r\n\r\n $(\".js-flight .js-count-box .js-min\").click(function () {\r\n var $this = $(this).closest(\".js-economy-target\");\r\n $(\".js-validation-economy\").text(\"\");\r\n\r\n var num = Number($(this).parent().find(\".js-number-passenger\").text());\r\n\r\n var min = Number($(this).parent().find(\".js-number-passenger\").data(\"min\"));\r\n\r\n var temp = num > min ? num - 1 : num;\r\n\r\n var babyNumber = Number(\r\n $(this)\r\n .closest(\".js-travelers\")\r\n .find(\".js-passenger-infant\")\r\n .find(\".js-number-passenger\")\r\n .text()\r\n );\r\n var adultNumber = Number(\r\n $(this).parent().find(\".js-number-passenger\").text()\r\n );\r\n if ($(this).closest(\"li\").hasClass(\"js-passenger-adult\")) {\r\n if (babyNumber < adultNumber) {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $this.find(\".js-flight-adults-number\").text(temp);\r\n } else {\r\n $(\".js-validation-economy\").text(\r\n \"تعداد بزرگسال نمی تواند کمتر از تعداد نوزاد باشد\"\r\n );\r\n }\r\n } else if (\r\n $(this).closest(\".js-passenger-list\").hasClass(\"js-passenger-infant\")\r\n ) {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $this.find(\".js-flight-infant-number\").text(temp);\r\n } else {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $this.find(\".js-flight-child-number\").text(temp);\r\n }\r\n calcSum($(this).closest(\".js-booking-container\"));\r\n });\r\n\r\n $(\".js-flight .js-economy-target\").each(function () {\r\n calcSum($(this));\r\n });\r\n\r\n //Select cabin type\r\n $(\".js-flight .js-cabin-type\").change(function () {\r\n $(\".js-cabin-type-label\").text(this.value).attr(\"title\", $(this).val());\r\n });\r\n\r\n $(\".js-routes-select\").on(\"change\", \"input\", function () {\r\n routesTypeCheck($(this).val(), $(this));\r\n });\r\n\r\n // Search Btn\r\n $(\".js-flight button.js-flight-search\").click(function () {\r\n $(this).closest(\".js-flight\").find(\".error-message\").remove();\r\n var valid = true;\r\n var fieldsEquelValidation = true;\r\n var toCityInput = $(this)\r\n .closest(\".js-section-active\")\r\n .find(\".js-to-city\")\r\n .attr(\"data-code\");\r\n var fromCityInput = $(this)\r\n .closest(\".js-section-active\")\r\n .find(\".js-from-city\")\r\n .attr(\"data-code\");\r\n\r\n var baseUrl = \"/\" + \"fa\" + \"/flight/\";\r\n\r\n var cabinTypeNumber = \"\";\r\n\r\n //external\r\n var routeType = $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-routes-select input:checked\")\r\n .val();\r\n\r\n var cabinType = $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-cabin-type-label\")\r\n .attr(\"title\");\r\n\r\n switch (cabinType) {\r\n case \"First\":\r\n cabinTypeNumber = 1;\r\n break;\r\n\r\n case \"Business\":\r\n cabinTypeNumber = 2;\r\n break;\r\n\r\n case \"Economy\":\r\n cabinTypeNumber = 3;\r\n break;\r\n\r\n case \"Premium\":\r\n cabinTypeNumber = 4;\r\n break;\r\n }\r\n\r\n if ($(\".js-search-holder .js-tab-nav\").length) {\r\n baseUrl +=\r\n $(\".js-search-holder .js-tab-nav\")\r\n .find(\".js-flight-tab.active\")\r\n .attr(\"data-searchType\") == \"external\"\r\n ? \"int/\"\r\n : \"dom/\";\r\n } else {\r\n baseUrl +=\r\n $(this).closest(\".js-booking-section\").attr(\"data-searchType\") == \"external\"\r\n ? \"int/\"\r\n : \"dom/\";\r\n }\r\n\r\n if (fromCityInput && toCityInput && toCityInput === fromCityInput) {\r\n valid = false;\r\n fieldsEquelValidation = false;\r\n }\r\n if (routeType !== \"severalWay\") {\r\n if (fromCityInput) {\r\n baseUrl += fromCityInput + \"-\";\r\n } else {\r\n valid = false;\r\n }\r\n\r\n if ($(this).closest(\".js-section-active\").find(\".js-to-city\").data(\"code\")) {\r\n baseUrl += $(this)\r\n .closest(\".js-section-active\")\r\n .find(\".js-to-city\")\r\n .data(\"code\");\r\n } else {\r\n valid = false;\r\n }\r\n baseUrl += \"/?Cab=\" + cabinTypeNumber + \"&\";\r\n\r\n var startDatevalue = $(this).closest(\".js-flight\").find(\".js-pick-date\");\r\n\r\n if (startDatevalue.val() && startDatevalue.next().val()) {\r\n baseUrl += \"Dep=\" + startDatevalue.next().val();\r\n } else {\r\n valid = false;\r\n }\r\n\r\n //dom flight and rafto bargasht\r\n\r\n if (\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find('.js-routes-select input:radio[name*=\"routeType\"]:checked')\r\n .val() === \"twoWay\"\r\n ) {\r\n var endDateValue = $(this).closest(\".js-flight\").find(\".js-pick-date2\");\r\n\r\n if (endDateValue.val() && endDateValue.next().val()) {\r\n baseUrl += \"&Ret=\" + endDateValue.next().val();\r\n } else {\r\n valid = false;\r\n }\r\n }\r\n\r\n baseUrl +=\r\n \"&Adt=\" +\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-section-active .js-passenger-adult .js-number-passenger\")\r\n .text();\r\n\r\n if (\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-section-active .js-passenger-child .js-number-passenger\")\r\n .text() > 0\r\n ) {\r\n baseUrl +=\r\n \"&Chd=\" +\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-section-active .js-passenger-child .js-number-passenger\")\r\n .text();\r\n }\r\n if (\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-section-active .js-passenger-infant .js-number-passenger\")\r\n .text() > 0\r\n ) {\r\n baseUrl +=\r\n \"&Inf=\" +\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\r\n \".js-section-active .js-passenger-infant .js-number-passenger\"\r\n )\r\n .text();\r\n }\r\n } else if (routeType === \"severalWay\") {\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-serveral-routes-container .js-auto-search\")\r\n .each(function (index, value) {\r\n if ($(this).val() !== \"\") {\r\n var valThis = $(this).data(\"code\");\r\n baseUrl += valThis;\r\n\r\n if (\r\n $(\".js-serveral-routes-container .js-auto-search\").length - 1 !=\r\n index\r\n ) {\r\n baseUrl += \"-\";\r\n }\r\n } else {\r\n valid = false;\r\n }\r\n });\r\n\r\n baseUrl += \"/?Cab=\" + cabinTypeNumber + \"&\";\r\n\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-section-active .js-pick-date\")\r\n .each(function (index, value) {\r\n if ($(this).val() !== \"\") {\r\n baseUrl += \"Dep=\" + $(this).next().val() + \"&\";\r\n } else {\r\n valid = false;\r\n }\r\n });\r\n\r\n baseUrl +=\r\n \"Adt=\" +\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-section-active .js-passenger-adult .js-number-passenger\")\r\n .text();\r\n\r\n if (\r\n Number(\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-section-active .js-passenger-child .js-number-passenger\")\r\n .text()\r\n ) > 0\r\n ) {\r\n baseUrl +=\r\n \"&Chd=\" +\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\".js-section-active .js-passenger-child .js-number-passenger\")\r\n .text();\r\n }\r\n if (\r\n Number(\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\r\n \".js-section-active .js-passenger-infant .js-number-passenger\"\r\n )\r\n .text()\r\n ) > 0\r\n ) {\r\n baseUrl +=\r\n \"&Inf=\" +\r\n $(this)\r\n .closest(\".js-flight\")\r\n .find(\r\n \".js-section-active .js-passenger-infant .js-number-passenger\"\r\n )\r\n .text();\r\n }\r\n }\r\n\r\n if (!valid) {\r\n if (!fieldsEquelValidation) {\r\n $(this)\r\n .closest(\".js-flight\")\r\n .append(\r\n `فیلد مبدا و مقصد نمی‌تواند یکسان باشد`\r\n );\r\n } else {\r\n $(this)\r\n .closest(\".js-flight\")\r\n .append(\r\n `لطفا از فیلدها را کامل نمایید`\r\n );\r\n }\r\n\r\n return false;\r\n } else {\r\n window.location.assign(baseUrl);\r\n }\r\n });\r\n\r\n // Exchange Btn For Swaping Values\r\n $(\".js-exchange-btn\").click(exchange);\r\n\r\n //traveller menu close\r\n $(document).mouseup(function (e) {\r\n if (\r\n !$(\".js-economy-target\").is(e.target) && // if the target of the click isn't the container...\r\n $(\".js-economy-target\").has(e.target).length === 0\r\n ) {\r\n if ($(window).width() > 992) {\r\n // ... nor a descendant of the container\r\n $(\".js-travelers\").fadeOut();\r\n $(\".js-economy-target .js-booking-field\").removeClass(\r\n \"booking-search__field--active\"\r\n );\r\n } else {\r\n $(\".js-travelers\").removeClass(\"show-tmenu\");\r\n }\r\n }\r\n });\r\n\r\n ///events control in mobile\r\n $(\".js-flight\").delegate(\".js-close-auto-complete\", \"click\", function () {\r\n $(\".js-flight-city\").removeClass(\"show-mobile\");\r\n $(\".js-flight-search-list>ul\").hide();\r\n $(\"html\").removeClass(\"no-scroll\");\r\n });\r\n\r\n // show datepicker or autocomplete list when click on parent box\r\n $(document).delegate(\".js-booking-field\", \"click\", function (e) {\r\n if ($(this).find(\".js-auto-search\").length) {\r\n if (\r\n !e.target.closest(\".js-auto-search\") &&\r\n !e.target.closest(\".js-flight-search-list\") &&\r\n !e.target.closest(\".js-close-auto-complete\")\r\n ) {\r\n $(this).find(\".js-auto-search\").trigger(\"focus\");\r\n }\r\n }\r\n\r\n if (\r\n $(this).find(\".js-pick-date\").length &&\r\n !e.target.closest(\".js-pick-date\")\r\n ) {\r\n $(this).find(\".js-pick-date.hasDatepicker\").datepicker(\"show\");\r\n }\r\n\r\n if (\r\n $(this).find(\".js-pick-date2\").length &&\r\n !e.target.closest(\".js-pick-date2\")\r\n ) {\r\n $(this).find(\".js-pick-date2.hasDatepicker\").datepicker(\"show\");\r\n }\r\n });\r\n\r\n //search input layout in mobile\r\n $(\".js-flight\").delegate(\".js-input-layout\", \"click\", function () {\r\n $(this).closest(\".js-flight-city\").addClass(\"show-mobile\");\r\n $(this).closest(\".js-flight-city\").find(\"input\").trigger(\"focus\");\r\n $(this).closest(\".js-flight-city\").find(\"input\").trigger(\"search\");\r\n });\r\n});\r\n\r\n//add flight in several rout\r\n$(document).delegate(\".js-add-flight-route\", \"click\", function () {\r\n if ($(\".js-routes-row\").length <= 5) {\r\n var toCityValue = $(\".js-routes-row\").last().find(\".js-to-city\").val();\r\n var toCityValueAttr = $(\".js-routes-row\")\r\n .last()\r\n .find(\".js-to-city\")\r\n .attr(\"data-code\");\r\n var toCitydirection = $(\".js-routes-row\")\r\n .last()\r\n .find(\".js-to-city\")\r\n .css(\"direction\");\r\n\r\n var language = GetLanguage();\r\n\r\n routeRowTemplate = `\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      کمی صبر کنید
      \r\n
      \r\n
      \r\n \r\n\r\n \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
        \r\n
        \r\n
        \r\n
        کمی صبر کنید ...
        \r\n
        \r\n
        \r\n\r\n
        \r\n
        \r\n
        \r\n\r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n `;\r\n $(\".js-routes-row\").last().after($(routeRowTemplate));\r\n for (var i = 0; i < $(\".js-route-number\").length; i++) {\r\n var item = $(\".js-route-number\")[i];\r\n $(item).text(`مسیر ${i + 1}`);\r\n }\r\n\r\n srcType = $(this).attr(\"data-searchType\");\r\n\r\n getUrl(srcType);\r\n\r\n setTimeout(function () {\r\n $(\".js-flight .js-auto-search\").each(function () {\r\n autoSearch($(this));\r\n });\r\n }, 100);\r\n\r\n // Function Added Maunly For Duplicated Item\r\n $(\".js-duplicate-exchange\").on(\"click\", exchange);\r\n\r\n newdatePicker();\r\n }\r\n});\r\n\r\n//delete flight\r\n$(document).delegate(\".js-delete-flight-route\", \"click\", function () {\r\n $(this).closest(\".js-added-flight\").remove();\r\n for (var i = 0; i < $(\".js-route-number\").length; i++) {\r\n var item = $(\".js-route-number\")[i];\r\n $(item).text(`مسیر ${i + 1}`);\r\n }\r\n});\r\n\r\n//delete all flight\r\n$(document).delegate(\".js-clear-all-flight\", \"click\", function () {\r\n $(\".js-added-flight\").remove();\r\n for (var i = 0; i < $(\".js-route-number\").length; i++) {\r\n var item = $(\".js-route-number\")[i];\r\n $(item).text(`مسیر ${i + 1}`);\r\n }\r\n});\r\n\r\n//economy click\r\n$(document).delegate(\r\n \".js-economy-target .js-booking-field\",\r\n \"click\",\r\n function () {\r\n if ($(window).width() > 992) {\r\n $(this).toggleClass(\"booking-search__field--active\");\r\n }\r\n\r\n $(this).next(\".js-travelers\").toggleClass(\"show-mobile\");\r\n $(this).next(\".js-travelers\").fadeToggle();\r\n\r\n if (documentWidth < 992) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n }\r\n);\r\n\r\n//remove input text\r\n$(document).delegate(\".js-close-tmenu\", \"click\", function () {\r\n $(this).closest(\".js-travelers\").hide();\r\n $(\"html\").removeClass(\"no-scroll\");\r\n});\r\n\r\n$(document).delegate(\".js-search-filed\", \"focus\", function () {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".booking-search__field\")\r\n .addClass(\"booking-search__field--active\");\r\n }\r\n});\r\n\r\n$(document).delegate(\".js-search-filed\", \"blur\", function () {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".booking-search__field\")\r\n .removeClass(\"booking-search__field--active\");\r\n }\r\n});\r\n\r\n// Functions //\r\n\r\n// sort arrayObject\r\nfunction sortArrayObject(key, order = \"asc\") {\r\n return function (a, b) {\r\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\r\n // property doesn't exist on either object\r\n return 0;\r\n }\r\n\r\n var varA = typeof a[key] === \"string\" ? a[key].toUpperCase() : a[key];\r\n var varB = typeof b[key] === \"string\" ? b[key].toUpperCase() : b[key];\r\n\r\n var comparison = 0;\r\n\r\n if (varA > varB) {\r\n comparison = 1;\r\n } else if (varA < varB) {\r\n comparison = -1;\r\n }\r\n return order == \"desc\" ? comparison * -1 : comparison;\r\n };\r\n}\r\n\r\n//autoComplete\r\nfunction autoSearch($this) {\r\n if ($($this).closest(\".js-flight-cities\").length) {\r\n if (\r\n $(\".js-booking-section.active\").attr(\"data-searchType\") === \"internal\"\r\n ) {\r\n cityList = internalCityList;\r\n } else {\r\n cityList = externalCityList;\r\n }\r\n }\r\n\r\n $(\".js-tab-nav .js-tab-nav-header .tab-link\").on(\"click\", function (e) {\r\n e.preventDefault();\r\n\r\n setTimeout(function () {\r\n if (\r\n $(\".js-tab-nav\").find(\"li.active\").attr(\"data-searchType\") ===\r\n \"internal\"\r\n ) {\r\n cityList = internalCityList;\r\n } else {\r\n cityList = externalCityList;\r\n }\r\n }, 0);\r\n });\r\n\r\n $.widget(\"custom.autocomplete\", $.ui.autocomplete, {\r\n _renderMenu: function (ul, items) {\r\n var that = this,\r\n currentCategory = \"\";\r\n var sortedByFeatured = items.sort(sortArrayObject(\"isFeatured\", \"desc\"));\r\n $.each(sortedByFeatured, function (index, item) {\r\n if (Object.keys(item).length) {\r\n that._renderItemData(ul, item);\r\n }\r\n });\r\n\r\n if (ul.find(\".autocomplete-category-title\").length === 1) {\r\n ul.find(\".autocomplete-category-title\").remove();\r\n }\r\n },\r\n\r\n _renderItem: function (ul, item) {\r\n var li = \"\";\r\n\r\n if (Object.keys(item).length) {\r\n var className = item.isRtl ? \"rtl\" : \"ltr\";\r\n ul.removeClass(\"rtl ltr\");\r\n ul.addClass(className);\r\n\r\n if (!item.hasOwnProperty(\"airport\")) {\r\n li +=\r\n '
      • ' +\r\n '' +\r\n item.label +\r\n \"\";\r\n\r\n if (item.hasOwnProperty(\"airports\") && item.airports !== null) {\r\n li += 'همه فرودگاه ها';\r\n } else if (\r\n item.hasOwnProperty(\"airports\") &&\r\n item.airports === null\r\n ) {\r\n li += ' (' + item.code + \")\";\r\n }\r\n\r\n li += \"
      • \";\r\n } else if (\r\n item.hasOwnProperty(\"airport\") &&\r\n item.requestTerm != \"\" &&\r\n item.airport\r\n ) {\r\n var subdirectoryIcon = '';\r\n li +=\r\n '
      • ' +\r\n subdirectoryIcon +\r\n ' ' +\r\n item.label +\r\n \"\";\r\n li += \"
      • \";\r\n }\r\n }\r\n\r\n return $(li).appendTo(ul);\r\n },\r\n });\r\n\r\n $this\r\n .autocomplete({\r\n minLength: 0,\r\n delay: 400,\r\n appendTo: $this.next(),\r\n\r\n search: function (event) {\r\n $this.parent().find(\".js-search-loading\").show();\r\n\r\n if (\r\n $this.is(\".js-to-city\") &&\r\n $(\".js-tab-nav\").find(\"li.active\").attr(\"data-searchType\") ===\r\n \"internal\"\r\n ) {\r\n cityList =\r\n typeof destinationInternalCityList !== \"undefined\"\r\n ? destinationInternalCityList\r\n : internalCityList;\r\n }\r\n if (\r\n $this.is(\".js-to-city\") &&\r\n $(\".js-tab-nav\").find(\"li.active\").attr(\"data-searchType\") ===\r\n \"external\"\r\n ) {\r\n cityList =\r\n typeof destinationExternalCityList !== \"undefined\"\r\n ? destinationExternalCityList\r\n : externalCityList;\r\n }\r\n if (\r\n $this.is(\".js-from-city\") &&\r\n $(\".js-tab-nav\").find(\"li.active\").attr(\"data-searchType\") ===\r\n \"internal\"\r\n ) {\r\n cityList = internalCityList;\r\n }\r\n if (\r\n $this.is(\".js-from-city\") &&\r\n $(\".js-tab-nav\").find(\"li.active\").attr(\"data-searchType\") ===\r\n \"external\"\r\n ) {\r\n cityList = externalCityList;\r\n }\r\n\r\n if (documentWidth < 992) {\r\n // $(this).closest(\".js-flight-city\").addClass(\"show-mobile\");\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n $(this).parent().find(\".error-message\").remove();\r\n },\r\n\r\n source: function (request, response) {\r\n if ($this.val() && cityList !== null) {\r\n var srcType = $this\r\n .closest(\".js-flight-cities\")\r\n .attr(\"data-searchType\");\r\n\r\n getUrl(srcType);\r\n $this.parent().find(\".js-search-loading\").show();\r\n $.ajax({\r\n url: sourceUrl,\r\n data: {\r\n keyword: request.term,\r\n orginPlace: $($this).is(\".js-from-city\"),\r\n },\r\n\r\n dataType: \"json\",\r\n success: function (data) {\r\n $this.parent().find(\".js-search-loading\").hide();\r\n //flight\r\n if ($($this).closest(\".js-flight-cities\").length) {\r\n var flightsArr = [],\r\n cities = {},\r\n airports = {};\r\n response(\r\n $.map(data.results, function (obj) {\r\n cities = {\r\n label: obj.label,\r\n value: obj.cityTitle + \"(\" + obj.code + \")\",\r\n code: obj.code,\r\n cityTitle: obj.cityTitle,\r\n airports: obj.airports,\r\n isRtl: data.isRtl,\r\n isFeatured: obj.isFeatured,\r\n requestTerm: request.term,\r\n };\r\n flightsArr.push(cities);\r\n\r\n if (obj.airports != null && obj.airports.length) {\r\n $.map(obj.airports, function (airport) {\r\n airports = {\r\n airport: true,\r\n label: airport.label,\r\n code: airport.code,\r\n value: airport.label,\r\n isRtl: data.isRtl,\r\n isFeatured: obj.isFeatured,\r\n cityTitle: airport.cityTitle,\r\n requestTerm: request.term,\r\n };\r\n\r\n flightsArr.push(airports);\r\n });\r\n }\r\n return [cities, airports];\r\n })\r\n );\r\n }\r\n },\r\n error: function () {\r\n $this.parent().find(\".js-search-loading\").hide();\r\n },\r\n });\r\n } else {\r\n return response(cityList);\r\n }\r\n },\r\n\r\n open: function () {\r\n //off autocomplete in chrome\r\n let chromeAgent = navigator.userAgent.indexOf(\"Chrome\") != -1;\r\n if (chromeAgent) {\r\n $this.attr(\"autocomplete\", \"disable-autocomplete\");\r\n }\r\n\r\n var inputObj = $this;\r\n\r\n inputObj\r\n .next(\".js-flight-search-list\")\r\n .children(\"ul\")\r\n .width(\r\n inputObj\r\n .closest(\".js-booking-field\")\r\n .find(\".js-auto-search\")\r\n .width()\r\n );\r\n\r\n inputObj\r\n .next(\".js-flight-search-list\")\r\n .children(\"ul\")\r\n .css({\r\n top: \"+=\" + 16,\r\n });\r\n inputObj\r\n .closest(\".js-flight-cities\")\r\n .find(\".js-from-city\")\r\n .addClass(\"focusedInput\");\r\n $(\".ui-autocomplete\").off(\"menufocus hover mouseover mouseenter\");\r\n },\r\n\r\n close: function () {\r\n $(\"html\").removeClass(\"no-scroll\");\r\n },\r\n\r\n select: function (e, ui) {\r\n $(this).attr(\"data-code\", ui.item.code);\r\n\r\n $(this).attr(\"data-value\", ui.item.value);\r\n\r\n $(this).val();\r\n\r\n $(this).attr(\"placeholder\", ui.item.value);\r\n\r\n if (\r\n $(this).closest(\".js-serveral-routes-container\").length &&\r\n $(this).hasClass(\"js-to-city\")\r\n ) {\r\n if ($(this).closest(\".js-routes-row\").next().length) {\r\n if (\r\n !$(this)\r\n .closest(\".js-routes-row\")\r\n .next()\r\n .find(\".js-from-city\")\r\n .val()\r\n ) {\r\n if ($(window).width() > 992) {\r\n $(this).attr(\"placeholder\", ui.item.value);\r\n }\r\n\r\n $(this).parent().find(\".error-message\").remove();\r\n }\r\n }\r\n }\r\n\r\n var routeType = $this\r\n .closest(\".js-flight\")\r\n .find(\".js-routes-select input:checked\")\r\n .val();\r\n\r\n if ($(window).width() > 992) {\r\n if ($(this).is(\".js-from-city\")) {\r\n $(this)\r\n .closest(\".js-flight-cities\")\r\n .find(\".js-to-city\")\r\n .trigger(\"focus\");\r\n } else if ($(this).is(\".js-to-city\")) {\r\n if (routeType != \"severalWay\") {\r\n $(this)\r\n .closest(\".js-section-active\")\r\n .find(\".js-pick-date\")\r\n .trigger(\"focus\");\r\n } else {\r\n $(this)\r\n .closest(\".js-routes-row\")\r\n .find(\".js-pick-date\")\r\n .trigger(\"focus\");\r\n }\r\n }\r\n } else {\r\n $(this).closest(\".js-flight-city\").removeClass(\"show-mobile\");\r\n\r\n $(this).autocomplete(\"close\");\r\n\r\n $(this)\r\n .closest(\".js-flight-city\")\r\n .find(\".js-input-layout\")\r\n .html(ui.item.value);\r\n\r\n $(\"html\").removeClass(\"no-scroll\");\r\n\r\n $(this).autocomplete(\"close\");\r\n\r\n $(this).trigger(\"blur\");\r\n\r\n $this.parent().find(\".js-search-loading\").hide();\r\n }\r\n\r\n $(this).parent().find(\".error-message\").remove();\r\n },\r\n\r\n change: function (event, ui) {\r\n if (!ui.item) {\r\n\r\n\r\n if (!$(this).parent().find(\".error-message\").length && !flag) {\r\n $(this).val(\"\");\r\n $(this)\r\n .parent()\r\n .append(\r\n `لطفا از لیست انتخاب کنید`\r\n );\r\n }\r\n } else {\r\n $(this).parent().find(\".error-message\").remove();\r\n }\r\n },\r\n })\r\n\r\n .bind(\"focus\", function (event) {\r\n if ($(this).val()) {\r\n flag = true;\r\n $(this).val(\"\");\r\n\r\n }\r\n $(this).autocomplete(\"search\");\r\n $this.parent().find(\".js-search-loading\").hide();\r\n })\r\n\r\n .bind(\"blur\", function () {\r\n $(this).val($(this).attr(\"placeholder\"));\r\n $this.parent().find(\".js-search-loading\").hide();\r\n });\r\n}\r\n\r\nvar flag = false;\r\n\r\n// Exchange Btn\r\nfunction exchange() {\r\n var input1 = $(this).closest(\".js-flight-cities\").find(\".js-from-city\");\r\n var input2 = $(this).closest(\".js-flight-cities\").find(\".js-to-city\");\r\n\r\n var inputList1 = input1\r\n .closest(\".js-flight-city\")\r\n .find(\".js-flight-search-list\");\r\n var inputList2 = input2\r\n .closest(\".js-flight-city\")\r\n .find(\".js-flight-search-list\");\r\n\r\n var valueHolderInMobile1 = $(this)\r\n .closest(\".js-flight-cities\")\r\n .find(\".js-from-city\")\r\n .siblings(\".js-input-layout\");\r\n var valueHolderInMobile2 = $(this)\r\n .closest(\".js-flight-cities\")\r\n .find(\".js-to-city\")\r\n .siblings(\".js-input-layout\");\r\n\r\n $(input2).swap(input1);\r\n\r\n $(valueHolderInMobile2).swap(valueHolderInMobile1);\r\n\r\n $(inputList2).swap(inputList1);\r\n\r\n input1.removeClass(\"js-from-city\").addClass(\"js-to-city\");\r\n input2.removeClass(\"js-to-city\").addClass(\"js-from-city\");\r\n}\r\n\r\n// init datePicker\r\nfunction datePicker() {\r\n setTimeout(function () {\r\n $(\".js-flight .js-flight-departure\").pickDate({\r\n dateFormat: \"yy/mm/dd\",\r\n dateFormatEn: \"yy M dd\",\r\n\r\n nextText: \"ماه بعد\",\r\n\r\n prevText: \"ماه قبل\",\r\n\r\n nextTextEn: \"next month\",\r\n\r\n prevTextEn: \"prev month\",\r\n\r\n changeMonthAllow: false,\r\n changeYearAllow: false,\r\n showButtonPanel: true,\r\n isDependenceDates: false,\r\n showCurrentAtPos: 0,\r\n numberOfMonths: $(window).width() > 991 ? 2 : 1,\r\n minDate: -0,\r\n customClass: \"lightTheme\",\r\n showAllMonthsinList: false,\r\n langType: \"fa\",\r\n blurInmobile: true,\r\n dayNamesShortFa: [\r\n \"1شنبه\",\r\n \"2شنبه\",\r\n \"3شنبه\",\r\n \"4شنبه\",\r\n \"5شنبه\",\r\n \"جمعه\",\r\n \"شنبه\",\r\n ],\r\n dayNamesShortEn: [\"Su\", \"Mo\", \"TU\", \"We\", \"Th\", \"Fr\", \"Sa\"],\r\n enterDateTitle: \"تاریخ رفت\",\r\n exitDateTitle: \"تاریخ برگشت\",\r\n enterDateTitleEn: \"Departure date\",\r\n exitDateTitleEn: \"Retun date\",\r\n fillHidden: {\r\n enable: true,\r\n outPut: \"en\", //en | Dependent_On_SelectedDate | fa\r\n customformatInhidden: \"YYYY-MM-DD\",\r\n },\r\n onSelectEvent: function () {\r\n var $this = $(this);\r\n var routeType = $this\r\n .closest(\".js-flight\")\r\n .find(\".js-routes-select input:checked\")\r\n .val();\r\n\r\n setTimeout(function () {\r\n if (routeType === \"twoWay\" && $this.is(\".js-pick-date\")) {\r\n $this\r\n .closest(\".js-flight-departure\")\r\n .find(\".js-pick-date2\")\r\n .trigger(\"focus\");\r\n }\r\n }, 10);\r\n },\r\n });\r\n }, 100);\r\n}\r\n\r\nfunction newdatePicker() {\r\n $(\".js-routes-row\")\r\n .last()\r\n .find(\".js-flight-departure\")\r\n .pickDate({\r\n dateFormat: \"yy/mm/dd\",\r\n dateFormatEn: \"yy M dd\",\r\n changeMonthAllow: false,\r\n changeYearAllow: false,\r\n showButtonPanel: true,\r\n blurInmobile: true,\r\n isDependenceDates: false,\r\n customClass: \"lightTheme\",\r\n showCurrentAtPos: 0,\r\n numberOfMonths: $(window).width() > 991 ? 2 : 1,\r\n minDate: -0,\r\n maxDate: \"+1Y\",\r\n showAllMonthsinList: false,\r\n langType: \"fa\",\r\n\r\n fillHidden: {\r\n enable: true,\r\n outPut: \"en\", //en | Dependent_On_SelectedDate | fa\r\n customformatInhidden: \"YYYY-MM-DD\",\r\n },\r\n });\r\n}\r\n\r\n// get url for ajax\r\nfunction getUrl(srcType) {\r\n if (srcType === \"internal\") {\r\n sourceUrl = \"/airport/iranianairports/\";\r\n } else if (srcType === \"external\") {\r\n sourceUrl = \"/airport/airports/\";\r\n }\r\n}\r\n\r\nfunction calcSum(obj) {\r\n sum = 0;\r\n obj.find(\"li.js-passenger-list .js-number-passenger\").each(function () {\r\n sum += Number($(this).text());\r\n obj.find(\".js-traveles-number .js-number\").text(sum);\r\n });\r\n}\r\n\r\nfunction GetLanguage() {\r\n return window.location.pathname.split(\"/\")[1];\r\n}\r\n\r\nfunction routesTypeCheck(value, obj) {\r\n if (value === \"twoWay\") {\r\n $(obj)\r\n .closest(\".js-flight\")\r\n .find(\".hotel-booking__date-item--return-date\")\r\n .show();\r\n\r\n $(\".js-one-or-two-route-container\").show().addClass(\"js-section-active\");\r\n\r\n $(\".js-serveral-routes-container\").hide();\r\n\r\n $(\".js-flight-departure\").addClass(\"two-calendar\");\r\n\r\n sum = $(\r\n \".js-booking-section.active .js-one-or-two-route-passengers-sum\"\r\n ).text();\r\n } else if (value === \"oneWay\") {\r\n sum = $(\r\n \".js-booking-section.active .js-one-or-two-route-passengers-sum\"\r\n ).text();\r\n\r\n // $(\".js-booking-section.active .js-flight .hotel-booking__date-item--return-date\").hide();\r\n\r\n $(obj)\r\n .closest(\".js-flight\")\r\n .find(\".hotel-booking__date-item--return-date\")\r\n .hide();\r\n\r\n $(\".js-flight-departure\").removeClass(\"two-calendar\");\r\n\r\n $(\".js-one-or-two-route-container\").show().addClass(\"js-section-active\");\r\n\r\n $(\".js-serveral-routes-container\").hide().removeClass(\"js-section-active\");\r\n } else if (value === \"severalWay\") {\r\n sum = $(\r\n \".js-booking-section.active .js-serveral-routes-passengers-sum\"\r\n ).text();\r\n\r\n $(\".js-one-or-two-route-container\").hide().removeClass(\"js-section-active\");\r\n\r\n $(\".js-flight-departure\").removeClass(\"two-calendar\");\r\n\r\n $(\".js-serveral-routes-container\").show().addClass(\"js-section-active\");\r\n }\r\n}\r\n\r\n// Swap Elements\r\n$.fn.swap = function (elem) {\r\n elem = elem.jquery ? elem : $(elem);\r\n return this.each(function () {\r\n $(document.createTextNode(\"\"))\r\n .insertBefore(this)\r\n .before(elem.before(this))\r\n .remove();\r\n });\r\n};\r\n","var sourceUrl;\r\nvar documentWidth = $(document).width();\r\n\r\n$(window).resize(function() {\r\n documentWidth = $(document).width();\r\n});\r\n\r\n$(function() {\r\n $(document).mouseup(function(e) {\r\n if (\r\n !$(\".js-trip-rooms-options\").is(e.target) && // if the target of the click isn't the container...\r\n $(\".js-trip-rooms-options\").has(e.target).length === 0\r\n ) {\r\n if ($(window).width() > 767) {\r\n // ... nor a descendant of the container\r\n $(\".js-trip-rooms-options\").removeClass(\r\n \"trip-booking__rooms-options--open\"\r\n );\r\n }\r\n }\r\n });\r\n\r\n //trip tool-tip\r\n\r\n var localStorageOfToolTip = localStorage.getItem(\"tour-tooltip\");\r\n\r\n if (!localStorageOfToolTip) {\r\n $(\".js-tour-tooltip\").removeClass(\"hide\");\r\n } else {\r\n $(\".js-tour-tooltip\").remove();\r\n }\r\n if ($(\".js-tour-tooltip\").length) {\r\n $(document).click(function(e) {\r\n if (!$(\".js-tour-tooltip\").is(e.target)) {\r\n localStorage.setItem(\"tour-tooltip\", true);\r\n\r\n $(\".js-tour-tooltip\").remove();\r\n }\r\n });\r\n }\r\n\r\n tripDatePicker();\r\n});\r\n\r\n// sort arrayObject\r\nfunction sortArrayObject(key, order = \"asc\") {\r\n return function(a, b) {\r\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\r\n // property doesn't exist on either object\r\n return 0;\r\n }\r\n\r\n var varA = typeof a[key] === \"string\" ? a[key].toUpperCase() : a[key];\r\n var varB = typeof b[key] === \"string\" ? b[key].toUpperCase() : b[key];\r\n\r\n var comparison = 0;\r\n\r\n if (varA > varB) {\r\n comparison = 1;\r\n } else if (varA < varB) {\r\n comparison = -1;\r\n }\r\n return order == \"desc\" ? comparison * -1 : comparison;\r\n };\r\n}\r\n\r\n$(function() {\r\n //close autoComplete in mobile\r\n $(\".js-trip-cities\").delegate(\".js-close-auto-complete\", \"click\", function() {\r\n $(\".js-close\")\r\n .closest(\".focused\")\r\n .removeClass(\"focused\");\r\n $(\".js-mobile-layout\").show();\r\n $(\"#js-trip-from-city\").tripAutoComplete(\"close\");\r\n $(\"#js-trip-to-city\").tripAutoComplete(\"close\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n $(\".js-trip-search-input\").removeClass(\"show-mobile\");\r\n });\r\n});\r\n\r\nvar tripList;\r\n\r\nfunction tripinitializeSearch() {\r\n $(\".js-trip-form #js-trip-from-city\").each(function() {\r\n tripAutoSearch($(this), \"origin\");\r\n });\r\n\r\n $(\".js-trip-form #js-trip-to-city\").each(function() {\r\n tripAutoSearch($(this), \"destination\");\r\n });\r\n}\r\n\r\nfunction setInitialData() {\r\n if (typeof defaultOriginListOfTrip == \"undefined\") {\r\n defaultOriginListOfTrip = [];\r\n } else {\r\n defaultOriginListOfTrip = defaultOriginListOfTrip;\r\n }\r\n\r\n if (typeof defaultDestinationListOfTrip == \"undefined\") {\r\n defaultDestinationListOfTrip = [];\r\n } else {\r\n defaultDestinationListOfTrip = defaultDestinationListOfTrip;\r\n }\r\n}\r\n//autoComplete\r\nfunction tripSearch() {\r\n $(\".js-booking-section\").each(function() {\r\n if ($(this).hasClass(\"active\")) {\r\n setInitialData();\r\n tripinitializeSearch();\r\n }\r\n });\r\n\r\n $(\".js-tab-nav .js-tab-nav-header button\").on(\"click\", function() {\r\n setTimeout(function() {\r\n setInitialData();\r\n tripinitializeSearch();\r\n }, 0);\r\n });\r\n tripinitializeSearch();\r\n}\r\n\r\n$.widget(\"custom.tripAutoComplete\", $.ui.autocomplete, {\r\n _renderMenu: function(ul, items) {\r\n var that = this;\r\n $.each(items, function(index, item) {\r\n if (Object.keys(item).length) {\r\n that._renderItemData(ul, item);\r\n }\r\n });\r\n },\r\n _renderItem: function(ul, item) {\r\n var li = \"\";\r\n if (Object.keys(item).length) {\r\n var className = item.destinationType === 2 ? \"rtl\" : \"ltr\";\r\n\r\n ul.removeClass(\"rtl ltr\");\r\n\r\n ul.addClass(className);\r\n\r\n var icon = item.locationType === 1 ? \"icon-pin \" : \"icon-bed\";\r\n\r\n var location;\r\n\r\n if (item.destinationType === 1) {\r\n location =\r\n item.locationType === 1\r\n ? `${item.countryTitle}`\r\n : `${item.countryTitle +\r\n \" , \" +\r\n item.cityTitle}`;\r\n } else {\r\n location =\r\n item.locationType === 2 ? `${item.cityTitle}` : null;\r\n }\r\n li +=\r\n \"
      • \" +\r\n '' +\r\n \"\" +\r\n \"\" +\r\n item.value +\r\n \"\";\r\n\r\n if (location) {\r\n li += location;\r\n }\r\n\r\n li += \"
      • \";\r\n }\r\n\r\n return $(li).appendTo(ul);\r\n },\r\n});\r\n// trip auto search\r\nfunction tripAutoSearch($this, inputType) {\r\n $this\r\n .tripAutoComplete({\r\n minLength: 0,\r\n appendTo: $this.next(\".js-trip-search-list\"),\r\n delay: 600,\r\n search: function() {\r\n $(this)\r\n .parent()\r\n .find(\".js-search-loading\")\r\n .show();\r\n if (documentWidth < 992) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n },\r\n source: function(request, response) {\r\n if ($this.val() && tripList !== null) {\r\n $this\r\n .parent()\r\n .find(\".js-search-loading\")\r\n .show();\r\n $.ajax({\r\n url:\r\n \"/hotelbooking-api/searchtitle/\" +\r\n request.term +\r\n \"/?demandtype=1\",\r\n dataType: \"json\",\r\n success: function(data) {\r\n //trip\r\n $this\r\n .parent()\r\n .find(\".js-search-loading\")\r\n .hide();\r\n response(\r\n $.map(data.model, function(obj) {\r\n return {\r\n value: obj.title,\r\n tripTitle: obj.title,\r\n slug: obj.slug,\r\n cityTitle: obj.cityTitle,\r\n citySlug: obj.citySlug,\r\n countrySlug: obj.countrySlug,\r\n countryTitle: obj.countryTitle,\r\n locationType: obj.locationType,\r\n destinationType: obj.destinationType,\r\n id: obj.id,\r\n isRtl: obj.isRtl,\r\n dir: obj.dir,\r\n };\r\n })\r\n );\r\n },\r\n error: function() {\r\n $this\r\n .parent()\r\n .find(\".js-search-loading\")\r\n .hide();\r\n },\r\n });\r\n } else {\r\n if (inputType == \"origin\") {\r\n return response(defaultOriginListOfTrip);\r\n } else {\r\n return response(defaultDestinationListOfTrip);\r\n }\r\n }\r\n },\r\n open: function() {\r\n $this.addClass(\"focusedInput\");\r\n $(\".ui-autocomplete\").off(\"menufocus hover mouseover mouseenter\");\r\n\r\n //off autocomplete in chrome\r\n let chromeAgent = navigator.userAgent.indexOf(\"Chrome\") != -1;\r\n if (chromeAgent) {\r\n $this.attr(\"autocomplete\", \"disable-autocomplete\");\r\n }\r\n\r\n var inputObj = $(this);\r\n inputObj\r\n .next(\".js-trip-search-list\")\r\n .children(\"ul\")\r\n .css({\r\n top: \"+=\" + 16,\r\n });\r\n\r\n // $(\".js-trip-search-input\").addClass(\"show-mobile\");\r\n },\r\n close: function() {\r\n $this.removeClass(\"focusedInput\");\r\n\r\n if ($(\"html\").hasClass(\"no-scroll\")) {\r\n $(\"html\").removeClass(\"no-scroll\");\r\n }\r\n },\r\n select: function(e, ui) {\r\n tripDataModel[inputType].tripTitle = ui.item.value;\r\n\r\n tripDataModel[inputType].slug = ui.item.slug;\r\n\r\n tripDataModel[inputType].cityTitle = ui.item.cityTitle;\r\n\r\n tripDataModel[inputType].citySlug = ui.item.citySlug;\r\n\r\n tripDataModel[inputType].countryTitle = ui.item.countryTitle;\r\n\r\n tripDataModel[inputType].countrySlug = ui.item.countrySlug;\r\n\r\n tripDataModel[inputType].id = ui.item.id;\r\n tripDataModel[inputType].dir = ui.item.dir;\r\n\r\n tripDataModel.locationType = ui.item.locationType;\r\n\r\n tripDataModel.destinationType = ui.item.destinationType;\r\n\r\n /////////////\r\n\r\n $this.removeClass(\"empty\");\r\n $this.closest(\".js-trip-search-input\").addClass(ui.item.dir);\r\n\r\n $this.attr(\"data-value\", ui.item.value);\r\n\r\n $this\r\n .parent()\r\n .find(\".error-message\")\r\n .remove();\r\n $this.removeClass(\"notValid\");\r\n\r\n $this\r\n .parent()\r\n .find(\".js-search-loading\")\r\n .hide();\r\n\r\n $this\r\n .siblings(\".js-trip-input-layout\")\r\n .html(\"\" + ui.item.value + \"\");\r\n\r\n $(this)\r\n .closest(\".js-trip-search-input\")\r\n .removeClass(\"show-mobile\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n\r\n if (documentWidth < 992) {\r\n $(this).trigger(\"blur\");\r\n $this\r\n .parent()\r\n .find(\".js-search-loading\")\r\n .hide();\r\n $this.tripAutoComplete(\"close\");\r\n }\r\n\r\n tagManager({ value: ui.item.value, type: searchType });\r\n },\r\n })\r\n .bind(\"focus\", function() {\r\n if (\r\n $(window).width() > 992 ||\r\n $(\".js-trip-search-input\").hasClass(\"show-mobile\")\r\n ) {\r\n $(this).tripAutoComplete(\"search\");\r\n }\r\n\r\n $this\r\n .parent()\r\n .find(\".js-search-loading\")\r\n .hide();\r\n })\r\n .bind(\"blur\", function() {\r\n $this\r\n .parent()\r\n .find(\".js-search-loading\")\r\n .hide();\r\n if ($this.attr(\"id\") == \"js-trip-from-city\") {\r\n $this.attr(\"placeholder\", \"مبدا\");\r\n } else {\r\n $this.attr(\"placeholder\", \"مقصد\");\r\n }\r\n if (!$(this).hasClass(\"empty\")) $(this).val($(this).attr(\"data-value\"));\r\n });\r\n}\r\n\r\n$(\"body\").delegate(\".js-trip-input-layout\", \"click\", function() {\r\n $(this)\r\n .closest(\".js-trip-search-input\")\r\n .addClass(\"show-mobile\");\r\n\r\n $(this)\r\n .next()\r\n .trigger(\"focus\");\r\n\r\n // $(\"#js-trip-from-city\").tripAutoComplete(\"search\");\r\n});\r\n\r\n//toggle room detail\r\n$(\"body\").delegate(\".js-trip-rooms-toggle\", \"click\", function() {\r\n $(this).toggleClass(\"trip-booking__rooms-options--open\");\r\n if (documentWidth < 992) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n tripcheckAlignBox();\r\n});\r\n\r\n//room close\r\n$(\"body\").delegate(\r\n \".js-room-trip-close, .js-trip-rooms-confirm\",\r\n \"click\",\r\n function() {\r\n $(\".js-trip-rooms-toggle\").removeClass(\"trip-booking__rooms-options--open\");\r\n if ($(\"html\").hasClass(\"no-scroll\")) {\r\n $(\"html\").removeClass(\"no-scroll\");\r\n }\r\n }\r\n);\r\n\r\n//check form validation\r\nfunction tripCheckValidation() {\r\n var valid = true;\r\n $(\".js-booking-section.active .js-trip-form .error-message\").remove();\r\n // tripUpdateDates();\r\n if (\r\n tripDataModel[\"origin\"].tripTitle === \"\" ||\r\n tripDataModel[\"destination\"].tripTitle === \"\" ||\r\n $('.js-booking-section.active input[name=\"trip-city\"]').val() === \"\" ||\r\n tripDataModel.tripStartDateEn === \"\" ||\r\n tripDataModel.tripEndDateEn === \"\"\r\n ) {\r\n $(\".js-booking-section.active .js-trip-form\").append(\r\n `لطفا همه فیلدها را پر کنید`\r\n );\r\n valid = false;\r\n }\r\n\r\n var startDate = moment(\r\n $('.js-booking-section.active input[name=\"tripStartDate\"]')\r\n .next()\r\n .val()\r\n );\r\n\r\n var endDate = moment(\r\n $('.js-booking-section.active input[name=\"tripEndDate\"]')\r\n .next()\r\n .val()\r\n );\r\n\r\n var dateDifference = endDate.diff(startDate, \"days\");\r\n\r\n if (dateDifference > 20) {\r\n $(\".js-trip-form .js-trip-booking-date\").append(\r\n 'بازه تاریخ ورود و برگشت نباید بیشتر از 20 روز باشد.'\r\n );\r\n\r\n valid = false;\r\n }\r\n\r\n return valid;\r\n}\r\n\r\n//search event\r\n$(\"body\").delegate(\".js-trip-search\", \"click\", function() {\r\n var adultsString = \"\",\r\n childString = \"\",\r\n childAgeString = \"\";\r\n\r\n $.each(tripDataModel.rooms, function(i, room) {\r\n adultsString += \"&a=\" + room.adult;\r\n\r\n childString += \"&c=\" + room.child;\r\n\r\n $.each(room.childs, function(j, child) {\r\n childAgeString += \"&g=\" + Number(child - 1);\r\n });\r\n });\r\n\r\n var url = \"/trip/\";\r\n\r\n var valid = tripCheckValidation();\r\n\r\n if (!valid) {\r\n return;\r\n }\r\n\r\n url +=\r\n \"?i=\" +\r\n tripDataModel.tripStartDateEn +\r\n \"&o=\" +\r\n tripDataModel.tripEndDateEn +\r\n \"&r=\" +\r\n tripDataModel.roomsCount +\r\n \"&n=\" +\r\n \"&d=\" +\r\n tripDataModel.destination.id +\r\n \"&or=\" +\r\n tripDataModel.origin.id +\r\n adultsString +\r\n childString +\r\n childAgeString;\r\n\r\n window.location.assign(url);\r\n});\r\n\r\n// trip booking\r\n\r\n//static data\r\ntripAdultCountArray = [\r\n \"1 بزرگسال\",\r\n \"2 بزرگسال\",\r\n \"3 بزرگسال\",\r\n \"4 بزرگسال\",\r\n \"5 بزرگسال\",\r\n \"6 بزرگسال\",\r\n];\r\n\r\ntripChildCountArray = [\"0 کودک\", \"1 کودک\", \"2 کودک\", \"3 کودک\", \"4 کودک\"];\r\ntripChildAgesArray = [\r\n \"0 - 1\",\r\n \"1 - 2\",\r\n \"2 - 3 \",\r\n \"3 - 4 \",\r\n \"4 - 5 \",\r\n \"5 - 6 \",\r\n \"6 - 7 \",\r\n \"7 - 8 \",\r\n \"8 - 9 \",\r\n \"9 - 10 \",\r\n \"10 - 11 \",\r\n \"11 - 12 \",\r\n];\r\n\r\nvar tripDataModel = {\r\n tripEndDate: \"\",\r\n tripEndDateEn: \"\",\r\n tripStartDate: \"\",\r\n tripStartDateEn: \"\",\r\n locationType: 1,\r\n daysDuration: null,\r\n roomsCount: 1,\r\n childLabels: [],\r\n dir: \"rtl\",\r\n childsCount: 0,\r\n adultsCount: 0,\r\n destination: {\r\n tripTitle: \"\",\r\n cityTitle: \"\",\r\n citySlug: \"\",\r\n slug: \"\",\r\n countryTitle: \"\",\r\n countrySlug: \"\",\r\n },\r\n origin: {\r\n tripTitle: \"\",\r\n cityTitle: \"\",\r\n citySlug: \"\",\r\n slug: \"\",\r\n countryTitle: \"\",\r\n countrySlug: \"\",\r\n },\r\n rooms: [\r\n {\r\n room: 1,\r\n adult: 2,\r\n child: 0,\r\n childs: [],\r\n },\r\n ],\r\n};\r\n\r\nvar tripInput = [];\r\n\r\n//add or remove room\r\nvar roomNum;\r\n$(\"body\").delegate(\r\n \".js-trip-form .js-trip-count-box button\",\r\n \"click\",\r\n function() {\r\n if ($(this).hasClass(\"js-trip-max\")) {\r\n if (tripDataModel.roomsCount < 4) {\r\n roomNum = tripDataModel.roomsCount + 1;\r\n\r\n tripDataModel.roomsCount = roomNum;\r\n\r\n tripDataModel.rooms.push({\r\n room: roomNum,\r\n adult: 1,\r\n child: 0,\r\n childs: [],\r\n });\r\n }\r\n } else if ($(this).hasClass(\"js-trip-min\")) {\r\n if (tripDataModel.roomsCount > 1) {\r\n roomNum = tripDataModel.roomsCount - 1;\r\n\r\n tripDataModel.roomsCount = roomNum;\r\n\r\n tripDataModel.rooms.pop();\r\n }\r\n }\r\n updateTripTemplate(tripDataModel);\r\n }\r\n);\r\n\r\n// select adult count\r\n$(\"body\").delegate(\"select.js-trip-rooms-adult-count\", \"change\", function() {\r\n var roomIndex = $(this)\r\n .closest(\"ul\")\r\n .attr(\"data-row\");\r\n\r\n tripDataModel.rooms[roomIndex].adult = Number($(this).val()) + 1;\r\n\r\n updateTripTemplate(tripDataModel);\r\n});\r\n\r\n//in mobile\r\n$(\"body\").delegate(\".js-trip-adults>button\", \"click\", function(e) {\r\n e.preventDefault();\r\n var roomIndex = $(this)\r\n .closest(\"ul\")\r\n .attr(\"data-row\");\r\n\r\n var roomNumber = $(this).hasClass(\"js-trip-add\")\r\n ? Number(\r\n $(this)\r\n .siblings(\"input\")\r\n .val()\r\n ) + 1\r\n : Number(\r\n $(this)\r\n .siblings(\"input\")\r\n .val()\r\n ) - 1;\r\n\r\n $(this)\r\n .siblings(\"input\")\r\n .val(roomNumber);\r\n\r\n tripDataModel.rooms[roomIndex].adult = Number(roomNumber);\r\n\r\n updateTripTemplate(tripDataModel);\r\n});\r\n\r\n//select child count\r\n$(\"body\").delegate(\"select.js-trip-rooms-child-count\", \"change\", function() {\r\n var roomIndex = $(this)\r\n .closest(\"ul\")\r\n .attr(\"data-row\");\r\n\r\n tripDataModel.rooms[roomIndex].child = Number($(this).val());\r\n\r\n var oldChildCount = tripDataModel.rooms[roomIndex].childs.length;\r\n\r\n var selectedChildCount = Number($(this).val());\r\n\r\n if (selectedChildCount === oldChildCount) return;\r\n\r\n var newChildCount = 0;\r\n\r\n if (selectedChildCount > oldChildCount) {\r\n newChildCount = selectedChildCount - oldChildCount;\r\n for (i = 0; i < newChildCount; i++) {\r\n tripDataModel.rooms[roomIndex].childs.push(1);\r\n }\r\n } else {\r\n newChildCount = oldChildCount - selectedChildCount;\r\n for (i = 0; i < newChildCount; i++) {\r\n tripDataModel.rooms[roomIndex].childs.pop();\r\n }\r\n }\r\n updateTripTemplate(tripDataModel);\r\n});\r\n\r\n////select child count In mobile\r\n$(\"body\").delegate(\r\n \".js-trip-childs-count-InMobile>button\",\r\n \"click\",\r\n function() {\r\n var roomIndex = $(this)\r\n .closest(\"ul\")\r\n .attr(\"data-row\");\r\n\r\n var selectedChildCount = $(this).hasClass(\"js-trip-add\")\r\n ? Number(\r\n $(this)\r\n .siblings(\"input\")\r\n .val()\r\n ) + 1\r\n : Number(\r\n $(this)\r\n .siblings(\"input\")\r\n .val()\r\n ) - 1;\r\n\r\n if (selectedChildCount > 4 || selectedChildCount < 0) return;\r\n\r\n $(this)\r\n .siblings(\"input\")\r\n .val(selectedChildCount);\r\n\r\n tripDataModel.rooms[roomIndex].child = selectedChildCount;\r\n\r\n var oldChildCount = tripDataModel.rooms[roomIndex].childs.length;\r\n\r\n // var selectedChildCount = Number($(this).val());\r\n\r\n if (selectedChildCount === oldChildCount) return;\r\n\r\n var newChildCount = 0;\r\n\r\n if (selectedChildCount > oldChildCount) {\r\n newChildCount = selectedChildCount - oldChildCount;\r\n for (i = 0; i < newChildCount; i++) {\r\n tripDataModel.rooms[roomIndex].childs.push(1);\r\n }\r\n } else {\r\n newChildCount = oldChildCount - selectedChildCount;\r\n for (i = 0; i < newChildCount; i++) {\r\n tripDataModel.rooms[roomIndex].childs.pop();\r\n }\r\n }\r\n updateTripTemplate(tripDataModel);\r\n }\r\n);\r\n\r\n//select childs Age\r\n$(\"body\").delegate(\"select.js-trip-child-age\", \"change\", function() {\r\n var roomIndex = $(this)\r\n .closest(\"ul\")\r\n .attr(\"data-row\");\r\n\r\n var childAgeIndex = Number($(this).attr(\"name\"));\r\n\r\n var childAge = Number($(this).val()) + 1;\r\n\r\n tripDataModel.rooms[roomIndex].childs[childAgeIndex] = childAge;\r\n\r\n updateTripTemplate(tripDataModel);\r\n});\r\n\r\n////////////////////////////\r\n$(\"body\").delegate(\".js-trip-room-remove\", \"click\", function() {\r\n var roomIndex = $(this)\r\n .closest(\"ul\")\r\n .attr(\"data-row\");\r\n\r\n tripDataModel.rooms.splice(Number(roomIndex), 1);\r\n tripDataModel.roomsCount = tripDataModel.roomsCount - 1;\r\n updateTripTemplate();\r\n});\r\n\r\n//update Data\r\nfunction tripUpdateDates() {\r\n tripDataModel.tripStartDateEn = $(\r\n \".js-booking-section.active .js-trip-form .js-trip-check-in-date\"\r\n )\r\n .next()\r\n .val();\r\n\r\n tripDataModel.tripEndDateEn = $(\r\n \".js-booking-section.active .js-trip-form .js-trip-check-out-date\"\r\n )\r\n .next()\r\n .val();\r\n\r\n tripDataModel.tripStartDate = $(\r\n \".js-booking-section.active .js-trip-form .js-trip-check-in-date\"\r\n ).val();\r\n\r\n tripDataModel.tripEndDate = $(\r\n \".js-booking-section.active .js-trip-form .js-trip-check-out-date\"\r\n ).val();\r\n}\r\n\r\n//update Template\r\nfunction updateTripTemplate(newTemplate) {\r\n //get adultCount\r\n tripDataModel.adultsCount = 0;\r\n tripDataModel.childsCount = 0;\r\n $.each(tripDataModel.rooms, function(key, room) {\r\n tripDataModel.adultsCount += room.adult;\r\n tripDataModel.childsCount += room.child;\r\n });\r\n //check if rooms menu is open after update open it\r\n var flag = false;\r\n if (\r\n $(\".js-trip-rooms-toggle\").hasClass(\"trip-booking__rooms-options--open\")\r\n ) {\r\n flag = true;\r\n }\r\n var labelsArray = tripcountLabelNumbers(tripDataModel.rooms);\r\n tripDataModel.childLabels = labelsArray;\r\n\r\n $(\"#js-trip-booking\").html($(\"#js-trip-template\").tmpl(tripDataModel));\r\n $(\"#js-internal-trip-booking\").html(\r\n $(\"#js-trip-template\").tmpl(tripDataModel)\r\n );\r\n $(\"#js-trip\").html($(\"#js-trip-template\").tmpl(tripDataModel));\r\n\r\n if (flag) {\r\n $(\".js-trip-rooms-toggle\").addClass(\"trip-booking__rooms-options--open\");\r\n }\r\n tripcheckAlignBox();\r\n tripSearch();\r\n tripDatePicker();\r\n}\r\n//check align of rooms details menu\r\nfunction tripcheckAlignBox() {\r\n if (\r\n $(\".js-trip-form\").offset().left >\r\n $(\".js-trip-options-rooms\").offset().left &&\r\n $(\".rooms-toggleBtn\").hasClass(\"trip-booking__rooms-options--open\")\r\n ) {\r\n $(\".js-trip-rooms-options\").addClass(\"align-left\");\r\n } else {\r\n $(\".js-trip-rooms-options\").removeClass(\"align-left\");\r\n }\r\n}\r\n\r\nfunction tripcountLabelNumbers(rooms) {\r\n var childsLabel = [\"بزرگسال\", \"کودک\"];\r\n var max = 0;\r\n for (var i = 0; i < rooms.length; i++) {\r\n if (rooms[i].childs.length > max) {\r\n max = rooms[i].childs.length;\r\n }\r\n }\r\n for (var j = 0; j < max; j++) {\r\n childsLabel.push(\"سن کودک \" + (j + 1));\r\n }\r\n return childsLabel;\r\n}\r\n\r\n//check diff\r\nfunction tripCalcDiffDate() {\r\n if (!tripDataModel.tripStartDateEn || !tripDataModel.tripEndDateEn) {\r\n return \"\";\r\n }\r\n var startDate = moment.utc(tripDataModel.tripStartDateEn);\r\n var endDate = moment.utc(tripDataModel.tripEndDateEn);\r\n var daysDuration = endDate.diff(startDate, \"days\");\r\n return daysDuration;\r\n}\r\n\r\nfunction tripDatePicker() {\r\n setTimeout(function() {\r\n $(\".js-trip-form .js-trip-booking-date\").pickDate({\r\n // dateFormat: \"dd MM yy\",\r\n // dateFormatEn: \"yy M dd\",\r\n changeMonthAllow: false,\r\n changeYearAllow: false,\r\n showButtonPanel: true,\r\n isDependenceDates: false,\r\n showCurrentAtPos: 0,\r\n numberOfMonths: $(window).width() > 991 ? 2 : 1,\r\n minDate: -0,\r\n customClass: \"lightTheme\",\r\n showAllMonthsinList: false,\r\n langType: $(\".js-booking-section.active\").hasClass(\"js-external-flight\")\r\n ? \"en\"\r\n : \"fa\",\r\n blurInmobile: true,\r\n dayNamesShortFa: [\r\n \"1شنبه\",\r\n \"2شنبه\",\r\n \"3شنبه\",\r\n \"4شنبه\",\r\n \"5شنبه\",\r\n \"جمعه\",\r\n \"شنبه\",\r\n ],\r\n enterDateTitle: \"تاریخ ورود\",\r\n exitDateTitle: \"تاریخ خروج\",\r\n enterDateTitleEn: \"Check in\",\r\n exitDateTitleEn: \"Check out\",\r\n dayNamesShortEn: [\"Su\", \"Mo\", \"TU\", \"We\", \"Th\", \"Fr\", \"Sa\"],\r\n onSelectEvent: function() {\r\n if ($(this).hasClass(\"pickDate_2\")) {\r\n var daysDurationParam = tripCalcDiffDate();\r\n tripDataModel.daysDuration = daysDurationParam;\r\n if (tripDataModel.daysDuration) {\r\n $(\".js-booking-section.active .js-trip-booking-night-count\")\r\n .html(\"\" + tripDataModel.daysDuration)\r\n .addClass(\"night-count-show\");\r\n }\r\n } else {\r\n tripDataModel.daysDuration = null;\r\n $(\r\n \".js-booking-section.active .js-trip-booking-night-count\"\r\n ).removeClass(\"night-count-show\");\r\n }\r\n\r\n tripUpdateDates($(this));\r\n },\r\n fillHidden: {\r\n enable: true,\r\n outPut: \"en\", //en | Dependent_On_SelectedDate | fa\r\n customformatInhidden: \"YYYY-MM-DD\",\r\n },\r\n });\r\n }, 100);\r\n}\r\n\r\nupdateTripTemplate();\r\n\r\n$(\"body\").on(\"click\", function(e) {\r\n if (!$(e.target).closest(\".js-trip-rooms-options\").length) {\r\n if (\r\n $(\".js-trip-rooms-toggle\").hasClass(\"trip-booking__rooms-options--open\")\r\n ) {\r\n $(\".js-trip-rooms-toggle\").removeClass(\r\n \"trip-booking__rooms-options--open\"\r\n );\r\n }\r\n }\r\n});\r\n\r\n$(document).delegate(\".js-search-filed\", \"focus\", function() {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".booking-search__field\")\r\n .addClass(\"booking-search__field--active\");\r\n }\r\n});\r\n\r\n$(document).delegate(\".js-search-filed\", \"blur\", function() {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".booking-search__field \")\r\n .removeClass(\"booking-search__field--active\");\r\n }\r\n});\r\n","// define variable for travel time and locations default list\r\nvar insuranceLocationList;\r\n\r\n$(function () {\r\n if (window.insuranceDays && window.insuranceDays.length) {\r\n appendTravelTimeList(window.insuranceDays);\r\n }\r\n\r\n if (window.insuranceLocation && window.insuranceLocation.length) {\r\n insuranceLocationList = window.insuranceLocation;\r\n } else {\r\n $.get(\"/insurance/getcountries/\", function (data, status) {\r\n if (data.model && data.model.length) {\r\n insuranceLocationList = data.model;\r\n }\r\n });\r\n }\r\n\r\n $.get(\"/insurance/getdurationsofstay/?all=true\", function (data, status) {\r\n if (data.model && data.model.length) {\r\n appendTravelTimeList(data.model);\r\n }\r\n });\r\n\r\n // toggle travel time list\r\n $(\".js-toggle-insurance-time\").click(function () {\r\n $(this).closest(\".js-insurance-time\").toggleClass(\"is-open\");\r\n if (window.innerWidth < 993) {\r\n $(\"html\").toggleClass(\"no-scroll\");\r\n }\r\n });\r\n\r\n // close travel time list\r\n $(\"body\").on(\"click\", function (event) {\r\n if (!$(event.target).closest(\".js-insurance-time\").length) {\r\n if ($(\".js-insurance-time\").hasClass(\"is-open\")) {\r\n $(\".js-insurance-time\").removeClass(\"is-open\");\r\n\r\n $(\"html\").removeClass(\"no-scroll\");\r\n }\r\n }\r\n });\r\n\r\n // change travel time value\r\n $(\"body\").delegate(\".js-insurance-time-item\", \"click\", function () {\r\n $(\".js-insurance-time-value\").html($(this).html());\r\n $(\".js-insurance-time-value\").attr(\r\n \"data-value\",\r\n $(this).attr(\"data-value\")\r\n );\r\n $(\".js-insurance-time\").removeClass(\"is-open\");\r\n });\r\n\r\n // toggle person list\r\n $(\".js-toggle-person-list\").click(function () {\r\n $(\".js-toggle-person\").toggleClass(\"is-open\");\r\n if (window.innerWidth < 993) {\r\n $(\"html\").toggleClass(\"no-scroll\");\r\n }\r\n });\r\n\r\n // close person list\r\n $(\"body\").on(\"click\", function (event) {\r\n if (!$(event.target).closest(\".js-toggle-person\").length) {\r\n if ($(\".js-toggle-person\").hasClass(\"is-open\")) {\r\n $(\".js-toggle-person\").removeClass(\"is-open\");\r\n\r\n $(\"html\").removeClass(\"no-scroll\");\r\n }\r\n }\r\n });\r\n\r\n // change insurance person count and create input for person birth date\r\n $(\".js-person-item\").click(function () {\r\n $(\"html\").removeClass(\"no-scroll\");\r\n\r\n var personCount = Number($(this).attr(\"data-value\"));\r\n $(\".js-person-value\").html($(this).html());\r\n $(\".js-person-value\").attr(\"data-value\", personCount);\r\n $(\".js-toggle-person\").removeClass(\"is-open\");\r\n\r\n var datepickerItemLength = $(\".js-inc-datepicker-item\").length;\r\n\r\n if (personCount !== datepickerItemLength) {\r\n if (personCount > datepickerItemLength) {\r\n for (var i = datepickerItemLength + 1; i <= personCount; i++) {\r\n $(\".js-inc-datepicker\").append(\r\n \"\\\r\n
        \\\r\n
        \\\r\n \\\r\n \\\r\n \\\r\n
        \\\r\n
        \"\r\n );\r\n }\r\n\r\n initDatepicker();\r\n } else {\r\n for (var i = datepickerItemLength - 1; i >= personCount; i--) {\r\n $(\".js-inc-datepicker-item\")[i].remove();\r\n }\r\n }\r\n }\r\n });\r\n\r\n $(\".js-insurance-booking .js-inc-datepicker-calendar\").pickDate({\r\n dateFormat: \"yy/mm/dd\",\r\n dateFormatEn: \"yy M dd\",\r\n changeMonthAllow: true,\r\n changeYearAllow: true,\r\n showButtonPanel: true,\r\n isDependenceDates: false,\r\n showCurrentAtPos: 0,\r\n numberOfMonths: 1,\r\n yearRange: \"c-100:+00\",\r\n minDate: \"1300/01/01\",\r\n maxDate: new Date(),\r\n customClass: \"lightTheme insurance\",\r\n showAllMonthsinList: false,\r\n langType: \"fa\",\r\n blurInmobile: true,\r\n dayNamesShortFa: [\r\n \"1شنبه\",\r\n \"2شنبه\",\r\n \"3شنبه\",\r\n \"4شنبه\",\r\n \"5شنبه\",\r\n \"جمعه\",\r\n \"شنبه\",\r\n ],\r\n dayNamesShortEn: [\"Su\", \"Mo\", \"TU\", \"We\", \"Th\", \"Fr\", \"Sa\"],\r\n enterDateTitle: \"تاریخ تولد مسافر\",\r\n enterDateTitleEn: \"Passenger date of birth\",\r\n fillHidden: {\r\n enable: true,\r\n outPut: \"en\", //en | Dependent_On_SelectedDate | fa\r\n customformatInhidden: \"YYYY-MM-DD\",\r\n },\r\n });\r\n\r\n $(\".js-search-insurance\").click(function () {\r\n var baseUrl = \"/fa/Insurance/result/?\";\r\n var valid = true;\r\n\r\n $(\".js-insurance-booking\").find(\".js-error-message\").remove();\r\n $(\".js-insurance-booking-input\").removeClass(\"error\");\r\n\r\n if ($(\".js-insurance-location\").data(\"code\")) {\r\n baseUrl += \"CountryCode=\" + $(\".js-insurance-location\").data(\"code\");\r\n } else {\r\n $(\".js-insurance-location\")\r\n .closest(\".js-insurance-booking-input\")\r\n .addClass(\"error\");\r\n valid = false;\r\n }\r\n\r\n if ($(\".js-insurance-time-value\").attr(\"data-value\")) {\r\n baseUrl +=\r\n \"&DurationOfStay=\" + $(\".js-insurance-time-value\").data(\"value\");\r\n } else {\r\n $(\".js-insurance-time-value\")\r\n .closest(\".js-insurance-booking-input\")\r\n .addClass(\"error\");\r\n valid = false;\r\n }\r\n\r\n $(\".js-insurance-booking .pickDate\").each(function (index, value) {\r\n if ($(this).val() !== \"\") {\r\n baseUrl += \"&BirthDate[\" + index + \"]=\" + $(this).next().val();\r\n } else {\r\n $(this).closest(\".js-insurance-booking-input\").addClass(\"error\");\r\n valid = false;\r\n }\r\n });\r\n\r\n if (!valid) {\r\n $(\".js-insurance-booking\").append(\r\n \"لطفا تمام فیلدها را کامل نمایید\"\r\n );\r\n\r\n return false;\r\n } else {\r\n window.location.assign(baseUrl);\r\n }\r\n });\r\n\r\n // init autoComplete\r\n $(\".js-insurance-location\")\r\n .autocomplete({\r\n minLength: 0,\r\n delay: 400,\r\n source: function (request, response) {\r\n if (request.term === \"\") {\r\n var items =\r\n insuranceLocationList && insuranceLocationList.length\r\n ? insuranceLocationList\r\n : [];\r\n\r\n response(items);\r\n } else {\r\n var url = getResult($(\".js-insurance-location\"));\r\n $.getJSON(url).done(function (serverResponse) {\r\n response(serverResponse.model);\r\n });\r\n }\r\n },\r\n appendTo: $(\".js-insurance-location\").next(),\r\n search: function () {\r\n $(this).closest(\".js-insurance-booking-input\").addClass(\"is-open\");\r\n\r\n if (window.innerWidth < 993) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n },\r\n select: function (event, ui) {\r\n $(this).attr(\"data-code\", ui.item.code);\r\n $(this).attr(\"data-value\", ui.item.title);\r\n $(this).val();\r\n $(this).attr(\"placeholder\", ui.item.title);\r\n },\r\n open: function () {\r\n $(\".ui-autocomplete\").off(\"menufocus hover mouseover mouseenter\");\r\n },\r\n close: function (e, ui) {\r\n $(this).closest(\".js-insurance-booking-input\").removeClass(\"is-open\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n },\r\n })\r\n .bind(\"focus\", function () {\r\n $(this).val(\"\");\r\n $(this).autocomplete(\"search\");\r\n })\r\n .bind(\"blur\", function () {\r\n $(this).val($(this).attr(\"placeholder\"));\r\n })\r\n .autocomplete(\"instance\")._renderItem = function (ul, item) {\r\n return $(\"
      • \").append(item.title).appendTo(ul);\r\n };\r\n\r\n // close location\r\n $(\".js-insurance-booking\").delegate(\r\n \".js-close-location-list\",\r\n \"click\",\r\n function () {\r\n $(\".js-insurance-location\").autocomplete(\"close\");\r\n $(this).closest(\".js-insurance-booking-input\").removeClass(\"is-open\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n }\r\n );\r\n\r\n // show datepicker or autocomplete list when click on parent box\r\n $(document).delegate(\".js-insurance-booking-input\", \"click\", function (e) {\r\n if ($(this).find(\".js-insurance-location\").length) {\r\n if (\r\n !e.target.closest(\".js-insurance-location\") &&\r\n !e.target.closest(\".js-autocomplete-list\") &&\r\n !e.target.closest(\".js-close-location-list\")\r\n ) {\r\n $(this).find(\".js-insurance-location\").trigger(\"focus\");\r\n }\r\n }\r\n\r\n if (\r\n $(this).find(\".js-pick-date\").length &&\r\n !e.target.closest(\".js-pick-date\")\r\n ) {\r\n $(this).find(\".js-pick-date.hasDatepicker\").datepicker(\"show\");\r\n }\r\n });\r\n\r\n $(document).delegate(\".js-insurance-booking-input\", \"focus\", function () {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".insurance-booking__input\")\r\n .addClass(\"is-open\");\r\n }\r\n });\r\n\r\n $(document).delegate(\".js-insurance-booking-input\", \"blur\", function () {\r\n if ($(window).width() > 992) {\r\n $(this)\r\n .closest(\".insurance-booking__input\")\r\n .removeClass(\"is-open\");\r\n }\r\n });\r\n});\r\n\r\n// init datePicker\r\nfunction initDatepicker() {\r\n $(\".js-insurance-booking .js-inc-datepicker-calendar-new\").pickDate({\r\n dateFormat: \"yy/mm/dd\",\r\n dateFormatEn: \"yy M dd\",\r\n changeMonthAllow: true,\r\n changeYearAllow: true,\r\n showButtonPanel: true,\r\n isDependenceDates: false,\r\n showCurrentAtPos: 0,\r\n numberOfMonths: 1,\r\n yearRange: \"c-100:+00\",\r\n minDate: \"1300/01/01\",\r\n maxDate: new Date(),\r\n customClass: \"lightTheme insurance\",\r\n showAllMonthsinList: false,\r\n langType: \"fa\",\r\n blurInmobile: true,\r\n dayNamesShortFa: [\r\n \"1شنبه\",\r\n \"2شنبه\",\r\n \"3شنبه\",\r\n \"4شنبه\",\r\n \"5شنبه\",\r\n \"جمعه\",\r\n \"شنبه\",\r\n ],\r\n dayNamesShortEn: [\"Su\", \"Mo\", \"TU\", \"We\", \"Th\", \"Fr\", \"Sa\"],\r\n enterDateTitle: \"تاریخ تولد مسافر\",\r\n enterDateTitleEn: \"Passenger date of birth\",\r\n fillHidden: {\r\n enable: true,\r\n outPut: \"en\", //en | Dependent_On_SelectedDate | fa\r\n customformatInhidden: \"YYYY-MM-DD\",\r\n }\r\n });\r\n}\r\n\r\n// update auto complete after type\r\nfunction getResult(input) {\r\n var dataUrl = \"/insurance/getCountries/?Keyword=\";\r\n\r\n if (input.val()) {\r\n dataUrl += input.val();\r\n }\r\n return dataUrl;\r\n}\r\n\r\n// append insurance travel time list item\r\nfunction appendTravelTimeList(items) {\r\n $(\".js-insurance-time-list\").empty();\r\n\r\n if (items && items.length) {\r\n items.forEach(function (item) {\r\n $(\".js-insurance-time-list\").append(\r\n \"
      • \" +\r\n item.title +\r\n \"
      • \"\r\n );\r\n });\r\n }\r\n}\r\n","var modelInitializer = new ModelInitializer();\r\nvar RailInfo = modelInitializer.Get(\"RailInfo\");\r\nvar railList = null;\r\nvar isExternal;\r\nvar railSelector = \"\";\r\nvar documentWidth = screen.width;\r\n\r\n// Traveller Count Form\r\nvar sum;\r\nvar youngs = ``;\r\nvar temp = true;\r\n\r\n$(window).resize(function () {\r\n documentWidth = screen.width;\r\n});\r\n\r\n$(function () {\r\n railDatePicker();\r\n\r\n radioCheckedValue = $(\".js-rail .js-routes-select input:radio:checked\").val();\r\n railRoutesTypeCheck(radioCheckedValue);\r\n\r\n $(\".js-time-inner\").click(selectTime);\r\n\r\n $(\".js-rail .js-auto-search\").each(function () {\r\n autoSearchRail($(this));\r\n });\r\n\r\n $(\".js-rail .js-economy-target\").each(function () {\r\n calcSum($(this));\r\n });\r\n\r\n $(\".js-routes-select\").on(\"change\", \"input\", function () {\r\n railRoutesTypeCheck($(this).val(), $(this));\r\n });\r\n\r\n // Set rails list base on external or domestic rail\r\n $(\".js-tab-nav .js-tab-nav-header .tab-link\").click(function (e) {\r\n e.preventDefault();\r\n if ($(\".js-rail-tab.active\").attr(\"data-searchtype\") === \"external-rail\" && typeof externalRailStationsList !== 'undefined') {\r\n isExternal = true;\r\n railList = externalRailStationsList;\r\n railSelector = \".js-external-rail\";\r\n }else{\r\n console.warn('default external Rail Stations List object is not exit');\r\n }\r\n if ($(\".js-rail-tab.active\").attr(\"data-searchtype\") === \"internal-rail\" && typeof internalRailStationsList !== 'undefined') {\r\n isExternal = false;\r\n railList = internalRailStationsList;\r\n railSelector = \".js-domestic-rail\";\r\n }else{\r\n console.warn('default internal Rail Stations List object is not exit');\r\n }\r\n });\r\n\r\n // Traveller Menu Close\r\n $(document).mouseup(function (e) {\r\n // if the target of the click isn't the container...\r\n if (\r\n !$(\".js-economy-target\").is(e.target) &&\r\n $(\".js-economy-target\").has(e.target).length === 0\r\n ) {\r\n var validToClose = true;\r\n if ($(\".js-passenger-young .js-number-passenger\").text() !== \"0\") {\r\n $(\".js-young-age\").each(function () {\r\n if (!$(this).val()) {\r\n $(this).next().fadeIn();\r\n validToClose = false;\r\n } else {\r\n $(this).next().fadeOut();\r\n }\r\n });\r\n }\r\n\r\n if ($(\".js-passenger-young .js-number-passenger\").text() !== \"0\") {\r\n $(\".js-young-age\").each(function () {\r\n if ($(this).val() > 27 || $(this).val() < 0) {\r\n $(this).next().next().fadeIn();\r\n $(\".js-passenger-young-period\").addClass(\"err\");\r\n validToClose = false;\r\n } else {\r\n $(this).next().next().fadeOut();\r\n $(\".js-passenger-young-period\").removeClass(\"err\");\r\n }\r\n });\r\n }\r\n\r\n if (validToClose && documentWidth > 992) {\r\n // ... nor a descendant of the container\r\n $(\".js-rail-travelers\").fadeOut();\r\n $(\".js-economy-target .js-rail-booking-field\").removeClass(\r\n \"rail-booking__item--border--active\"\r\n );\r\n }\r\n }\r\n });\r\n\r\n $(document).mouseup(function (e) {\r\n if (\r\n !$(\".js-time-list\").is(e.target) &&\r\n $(\".js-time-list\").has(e.target).length === 0\r\n ) {\r\n if (documentWidth > 992) {\r\n // ... nor a descendant of the container\r\n $(\".js-time-list\").fadeOut();\r\n } else {\r\n $(\".js-rail-travelers\").removeClass(\"show-tmenu\");\r\n }\r\n }\r\n });\r\n\r\n // Search Btn\r\n $(\".js-rail .js-rail-search\").click(searchRail);\r\n\r\n // Exchange Btn For Swaping Values\r\n $(\".js-rail-exchange-btn\").click(railExchange);\r\n $(\".js-domestic-rail-exchange-btn\").click(domesticRailExchange);\r\n\r\n // Show More Description In Property\r\n $(\".js-show-more\").click(function () {\r\n $(\".js-property-footer-content\").toggleClass(\"auto-height\");\r\n $(this).toggleClass(\"active\");\r\n });\r\n\r\n $(\".js-rail-tab\").click(function () {\r\n railRoutesTypeCheck(radioCheckedValue);\r\n });\r\n\r\n $(\".js-rail .js-count-box .js-max\").click(function () {\r\n var $this = $(this).closest(\".js-rail-travelers\");\r\n youngs = `\r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n لطفا سن جوان را وارد نمایید\r\n سن وارد شده برای جوان صحیح نمی باشد\r\n
        \r\n
        \r\n `;\r\n if (sum < 9) {\r\n $this.find(\".js-validation-economy\").text(\"\");\r\n var num = Number($(this).parent().find(\".js-number-passenger\").text());\r\n var temp = num + 1;\r\n\r\n if ($(this).closest(\"li\").hasClass(\"js-passenger-adult\")) {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $(this)\r\n .closest(\".js-economy-target\")\r\n .find(\".js-rail-adults-number\")\r\n .text(temp);\r\n } else if ($(this).closest(\"li\").hasClass(\"js-passenger-young\")) {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $(this)\r\n .closest(\".js-economy-target\")\r\n .find(\".js-rail-young-number\")\r\n .text(temp);\r\n if (temp >= 1) {\r\n $(\".js-young\").fadeIn();\r\n if (isExternal) {\r\n $(this)\r\n .closest(\".js-rail-travelers\")\r\n .find(\".js-rail-booking-infant-description\")\r\n .slideDown();\r\n $(\".js-rail-booking-infant-description\").append(youngs);\r\n }\r\n }\r\n } else {\r\n if (temp >= 1) {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $(this)\r\n .closest(\".js-economy-target\")\r\n .find(\".js-rail-old-number\")\r\n .text(temp);\r\n $(\".js-old\").fadeIn();\r\n }\r\n }\r\n\r\n calcSum($(this).closest(\".js-economy-target\"));\r\n } else {\r\n $this\r\n .find(\".js-validation-economy\")\r\n .text(\"تعداد کل مسافرین نمیتواند بیشتر از 9 نفر باشد\");\r\n }\r\n });\r\n\r\n $(\".js-rail .js-count-box .js-min\").click(function () {\r\n var $this = $(this).closest(\".js-economy-target\");\r\n $(\".js-validation-economy\").text(\"\");\r\n\r\n var num = Number($(this).parent().find(\".js-number-passenger\").text());\r\n\r\n var min = Number($(this).parent().find(\".js-number-passenger\").data(\"min\"));\r\n\r\n var temp = num > min ? num - 1 : num;\r\n var babyNumber = Number(\r\n $(this)\r\n .closest(\".js-rail-travelers\")\r\n .find(\".js-passenger-young\")\r\n .find(\".js-number-passenger\")\r\n .text()\r\n );\r\n var adultNumber = Number(\r\n $(this).parent().find(\".js-number-passenger\").text()\r\n );\r\n if ($(this).closest(\"li\").hasClass(\"js-passenger-adult\")) {\r\n if (babyNumber < adultNumber) {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $this.find(\".js-rail-adults-number\").text(temp);\r\n } else {\r\n $(\".js-validation-economy\").text(\r\n \"تعداد بزرگسال نمی تواند کمتر از تعداد نوزاد باشد\"\r\n );\r\n }\r\n } else if (\r\n $(this).closest(\".js-passenger-list\").hasClass(\"js-passenger-young\")\r\n ) {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $this.find(\".js-rail-young-number\").text(temp);\r\n if (temp === 0) {\r\n $(\".js-young\").fadeOut();\r\n if (isExternal) {\r\n $(this)\r\n .closest(\".js-rail-travelers\")\r\n .find(\".js-rail-booking-infant-description\")\r\n .slideUp();\r\n }\r\n }\r\n } else {\r\n $(this).parent().find(\".js-number-passenger\").text(temp);\r\n $this.find(\".js-rail-old-number\").text(temp);\r\n if (temp === 0) {\r\n $(\".js-old\").fadeOut();\r\n }\r\n }\r\n $(\".js-young-wrapper:last-child\").remove();\r\n calcSum($(this).closest(\".js-booking-container\"));\r\n });\r\n\r\n // Events control in mobile\r\n $(\".js-rail\").delegate(\".js-close-auto-complete\", \"click\", function () {\r\n $(\".js-rail-city\").removeClass(\"show-mobile\");\r\n $(\".js-rail-search-list>ul\").hide();\r\n $(\"html\").removeClass(\"no-scroll\");\r\n });\r\n\r\n // Show DatePicker/autoComplete List when click on parent box\r\n $(document).delegate(\".js-rail-booking-field\", \"click\", function (e) {\r\n $(this).addClass(\"rail-booking__item--border--active\");\r\n if ($(this).find(\".js-auto-search\").length) {\r\n if (\r\n !e.target.closest(\".js-auto-search\") &&\r\n !e.target.closest(\".js-rail-search-list\") &&\r\n !e.target.closest(\".js-close-auto-complete\")\r\n ) {\r\n $(this).find(\".js-auto-search\").trigger(\"focus\");\r\n }\r\n }\r\n\r\n if (\r\n $(this).find(\".js-pick-date-rail\").length &&\r\n !e.target.closest(\".js-pick-date-rail\")\r\n ) {\r\n $(this).find(\".js-pick-date-rail.hasDatepicker\").datepicker(\"show\");\r\n }\r\n\r\n if (\r\n $(this).find(\".js-pick-date2-rail\").length &&\r\n !e.target.closest(\".js-pick-date2-rail\")\r\n ) {\r\n $(this).find(\".js-pick-date2-rail.hasDatepicker\").datepicker(\"show\");\r\n }\r\n });\r\n\r\n $(document).delegate(\".js-economy-target\", \"click\", function (e) {\r\n if (\r\n documentWidth < 992 &&\r\n !$(e.target).hasClass(\"icon-close\") &&\r\n !$(e.target).hasClass(\"js-close-tmenu\")\r\n ) {\r\n $(\".js-rail-travelers\").fadeIn();\r\n }\r\n });\r\n\r\n //search input layout in mobile\r\n $(\".js-rail\").delegate(\".js-rail-booking-field\", \"click\", function () {\r\n if (documentWidth < 992) {\r\n $(this).closest(\".js-rail-city\").addClass(\"show-mobile\");\r\n }\r\n $(this).closest(\".js-rail-city\").find(\"input\").trigger(\"focus\");\r\n $(this).closest(\".js-rail-city\").find(\"input\").trigger(\"search\");\r\n });\r\n\r\n $(document).delegate(\".js-young-age\", \"blur\", function () {\r\n if (!$(this).val()) {\r\n $(this).next().fadeIn();\r\n } else {\r\n $(this).next().fadeOut();\r\n }\r\n });\r\n\r\n // init autoComplete\r\n $(\".js-rail-origin-location\")\r\n .autocomplete({\r\n minLength: 0,\r\n source: function (request, response) {\r\n $('.js-rail-booking-input').addClass('select-mode')\r\n if (request.term === \"\") {\r\n var items = railList && railList.length ? railList : [];\r\n var newItems = [];\r\n items.map(function (item) {\r\n var rail = {\r\n clientCode: item.clientCode,\r\n code: item.code,\r\n country: item.country,\r\n id: item.id,\r\n label: item.persianLabel,\r\n engLabels: item.label,\r\n localLabel: item.localLabel,\r\n persianLabel: item.persianLabel,\r\n type: item.type,\r\n };\r\n newItems.push(rail);\r\n });\r\n response(newItems);\r\n } else {\r\n var url = getResult($(\".js-rail-origin-location\"));\r\n $.getJSON(url).done(function (serverResponse) {\r\n response(serverResponse.model);\r\n });\r\n }\r\n },\r\n\r\n search: function () {\r\n $(this).closest(\".js-rail-booking-input\").addClass(\"is-open\");\r\n\r\n if (window.innerWidth < 993) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n },\r\n\r\n select: function (event, ui) {\r\n var input;\r\n if (ui.item.type === \"city\") {\r\n input = ui.item.persianLabel;\r\n } else if (ui.item.type === \"station\") {\r\n input = ui.item.label;\r\n $(this).attr(\"station\", \"true\");\r\n }\r\n $(this).attr(\"data-code\", ui.item.clientCode);\r\n $(this).attr(\"data-value\", ui.item.title);\r\n $(this).val();\r\n $(this).attr(\"placeholder\", input);\r\n },\r\n\r\n open: function () {\r\n $(\".ui-autocomplete\").off(\"menufocus hover mouseover mouseenter\");\r\n },\r\n\r\n close: function () {\r\n $(this).closest(\".js-rail-booking-input\").removeClass(\"is-open\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n },\r\n appendTo: $(\".js-rail-origin-location\").next(),\r\n })\r\n .bind(\"focus\", function () {\r\n $(this).val(\"\");\r\n $(this).autocomplete(\"search\");\r\n })\r\n .bind(\"blur\", function () {\r\n $(this).val($(this).attr(\"placeholder\"));\r\n })\r\n .autocomplete(\"instance\")._renderItem = function (ul, item) {\r\n var input;\r\n var allStation = \"\";\r\n var icon = \"\";\r\n if (item.type === \"city\") {\r\n input = item.persianLabel;\r\n allStation = \"(همه ایستگاه ها)\";\r\n icon = \"\";\r\n } else if (item.type === \"station\") {\r\n input = item.label + \"(ایستگاه)\";\r\n icon = \"\";\r\n }\r\n return $(\"
      • \")\r\n .append(icon + input + allStation)\r\n .appendTo(ul);\r\n };\r\n\r\n // init autoComplete\r\n $(\".js-rail-domestic-origin-location\")\r\n .autocomplete({\r\n minLength: 0,\r\n source: function (request, response) {\r\n if (request.term === \"\") {\r\n var items = railList && railList.length ? railList : [];\r\n var newItems = [];\r\n items.map(function (item) {\r\n var rail = {\r\n clientCode: item.clientCode,\r\n code: item.code,\r\n country: item.country,\r\n id: item.id,\r\n label: item.persianLabel,\r\n engLabels: item.label,\r\n localLabel: item.localLabel,\r\n persianLabel: item.persianLabel,\r\n type: item.type,\r\n };\r\n newItems.push(rail);\r\n });\r\n response(newItems);\r\n } else {\r\n var url = getResult($(\".js-rail-domestic-origin-location\"));\r\n $.getJSON(url).done(function (serverResponse) {\r\n response(serverResponse.model);\r\n });\r\n }\r\n },\r\n\r\n search: function () {\r\n $(this).closest(\".js-rail-booking-input\").addClass(\"is-open\");\r\n\r\n if (window.innerWidth < 993) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n },\r\n\r\n select: function (event, ui) {\r\n var input;\r\n if (ui.item.type === \"city\") {\r\n input = ui.item.persianLabel;\r\n } else if (ui.item.type === \"station\") {\r\n input = ui.item.label;\r\n $(this).attr(\"station\", \"true\");\r\n }\r\n $(this).attr(\"data-code\", ui.item.clientCode);\r\n $(this).attr(\"data-value\", ui.item.title);\r\n $(this).val();\r\n $(this).attr(\"placeholder\", input);\r\n },\r\n\r\n open: function () {\r\n $(\".ui-autocomplete\").off(\"menufocus hover mouseover mouseenter\");\r\n },\r\n\r\n close: function () {\r\n $(this).closest(\".js-rail-booking-input\").removeClass(\"is-open\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n },\r\n appendTo: $(\".js-rail-domestic-origin-location\").next(),\r\n })\r\n .bind(\"focus\", function () {\r\n $(this).val(\"\");\r\n $(this).autocomplete(\"search\");\r\n })\r\n .bind(\"blur\", function () {\r\n $(this).val($(this).attr(\"placeholder\"));\r\n })\r\n .autocomplete(\"instance\")._renderItem = function (ul, item) {\r\n var input;\r\n var allStation = \"\";\r\n var icon = \"\";\r\n if (item.type === \"city\") {\r\n input = item.persianLabel;\r\n allStation = \"(همه ایستگاه ها)\";\r\n icon = \"\";\r\n } else if (item.type === \"station\") {\r\n input = item.label + \"(ایستگاه)\";\r\n icon = \"\";\r\n }\r\n return $(\"
      • \")\r\n .append(icon + input + allStation)\r\n .appendTo(ul);\r\n };\r\n\r\n $(\".js-rail-destinations-location\")\r\n .autocomplete({\r\n minLength: 0,\r\n source: function (request, response) {\r\n if (request.term === \"\") {\r\n var items = railList && railList.length ? railList : [];\r\n var newItems = [];\r\n items.map(function (item) {\r\n var rail = {\r\n clientCode: item.clientCode,\r\n code: item.code,\r\n country: item.country,\r\n id: item.id,\r\n label: item.persianLabel,\r\n engLabels: item.label,\r\n localLabel: item.localLabel,\r\n persianLabel: item.persianLabel,\r\n type: item.type,\r\n };\r\n newItems.push(rail);\r\n });\r\n response(newItems);\r\n } else {\r\n var url = getResult($(\".js-rail-destinations-location\"));\r\n $.getJSON(url).done(function (serverResponse) {\r\n response(serverResponse.model);\r\n });\r\n }\r\n },\r\n\r\n search: function () {\r\n $(this).closest(\".js-rail-booking-input\").addClass(\"is-open\");\r\n\r\n if (window.innerWidth < 993) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n },\r\n\r\n select: function (event, ui) {\r\n var input;\r\n if (ui.item.type === \"city\") {\r\n input = ui.item.persianLabel;\r\n } else if (ui.item.type === \"station\") {\r\n input = ui.item.label;\r\n $(this).attr(\"station\", \"true\");\r\n }\r\n $(this).attr(\"data-code\", ui.item.clientCode);\r\n $(this).attr(\"data-value\", ui.item.label);\r\n $(this).val();\r\n $(this).attr(\"placeholder\", input);\r\n },\r\n\r\n open: function () {\r\n $(\".ui-autocomplete\").off(\"menufocus hover mouseover mouseenter\");\r\n },\r\n\r\n close: function (e, ui) {\r\n $(this).closest(\".js-rail-booking-input\").removeClass(\"is-open\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n },\r\n appendTo: $(\".js-rail-destinations-location\").next(),\r\n })\r\n .bind(\"focus\", function () {\r\n $(this).val(\"\");\r\n $(this).autocomplete(\"search\");\r\n })\r\n .bind(\"blur\", function () {\r\n $(this).val($(this).attr(\"placeholder\"));\r\n })\r\n .autocomplete(\"instance\")._renderItem = function (ul, item) {\r\n var input;\r\n var allStation = \"\";\r\n var icon = \"\";\r\n if (item.type === \"city\") {\r\n input = item.persianLabel;\r\n allStation = \"(همه ایستگاه ها)\";\r\n icon = \"\";\r\n } else if (item.type === \"station\") {\r\n input = item.label + \"(ایستگاه)\";\r\n icon = \"\";\r\n }\r\n return $(\"
      • \")\r\n .append(icon + input + allStation)\r\n .appendTo(ul);\r\n };\r\n\r\n $(\".js-rail-domestic-destinations-location\")\r\n .autocomplete({\r\n minLength: 0,\r\n source: function (request, response) {\r\n if (request.term === \"\") {\r\n var items = railList && railList.length ? railList : [];\r\n var newItems = [];\r\n items.map(function (item) {\r\n var rail = {\r\n clientCode: item.clientCode,\r\n code: item.code,\r\n country: item.country,\r\n id: item.id,\r\n label: item.persianLabel,\r\n engLabels: item.label,\r\n localLabel: item.localLabel,\r\n persianLabel: item.persianLabel,\r\n type: item.type,\r\n };\r\n newItems.push(rail);\r\n });\r\n response(newItems);\r\n } else {\r\n var url = getResult($(\".js-rail-domestic-destinations-location\"));\r\n $.getJSON(url).done(function (serverResponse) {\r\n response(serverResponse.model);\r\n });\r\n }\r\n },\r\n\r\n search: function () {\r\n $(this).closest(\".js-rail-booking-input\").addClass(\"is-open\");\r\n\r\n if (window.innerWidth < 993) {\r\n $(\"html\").addClass(\"no-scroll\");\r\n }\r\n },\r\n\r\n select: function (event, ui) {\r\n var input;\r\n if (ui.item.type === \"city\") {\r\n input = ui.item.persianLabel;\r\n } else if (ui.item.type === \"station\") {\r\n input = ui.item.label;\r\n $(this).attr(\"station\", \"true\");\r\n }\r\n $(this).attr(\"data-code\", ui.item.clientCode);\r\n $(this).attr(\"data-value\", ui.item.label);\r\n $(this).val();\r\n $(this).attr(\"placeholder\", input);\r\n },\r\n\r\n open: function () {\r\n $(\".ui-autocomplete\").off(\"menufocus hover mouseover mouseenter\");\r\n },\r\n\r\n close: function (e, ui) {\r\n $(this).closest(\".js-rail-booking-input\").removeClass(\"is-open\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n },\r\n appendTo: $(\".js-rail-domestic-destinations-location\").next(),\r\n })\r\n .bind(\"focus\", function () {\r\n $(this).val(\"\");\r\n $(this).autocomplete(\"search\");\r\n })\r\n .bind(\"blur\", function () {\r\n $(this).val($(this).attr(\"placeholder\"));\r\n })\r\n .autocomplete(\"instance\")._renderItem = function (ul, item) {\r\n var input;\r\n var allStation = \"\";\r\n var icon = \"\";\r\n if (item.type === \"city\") {\r\n input = item.persianLabel;\r\n allStation = \"(همه ایستگاه ها)\";\r\n icon = \"\";\r\n } else if (item.type === \"station\") {\r\n input = item.label + \"(ایستگاه)\";\r\n icon = \"\";\r\n }\r\n return $(\"
      • \")\r\n .append(icon + input + allStation)\r\n .appendTo(ul);\r\n };\r\n\r\n // close location\r\n $(\".js-rail-booking\").delegate(\r\n \".js-close-location-list\",\r\n \"click\",\r\n function () {\r\n $(\".js-rail-origin-location\").autocomplete(\"close\");\r\n $(this).closest(\".js-rail-booking-input\").removeClass(\"is-open\");\r\n $(\"html\").removeClass(\"no-scroll\");\r\n }\r\n );\r\n\r\n // show datepicker or autocomplete list when click on parent box\r\n $(document).delegate(\".js-rail-booking-input\", \"click\", function (e) {\r\n if ($(this).find(\".js-rail-origin-location\").length) {\r\n if (\r\n !e.target.closest(\".js-rail-origin-location\") &&\r\n !e.target.closest(\".js-autocomplete-list\") &&\r\n !e.target.closest(\".js-close-location-list\")\r\n ) {\r\n $(this).find(\".js-rail-origin-location\").trigger(\"focus\");\r\n }\r\n }\r\n\r\n if (\r\n $(this).find(\".js-pick-date\").length &&\r\n !e.target.closest(\".js-pick-date\")\r\n ) {\r\n $(this).find(\".js-pick-date.hasDatepicker\").datepicker(\"show\");\r\n }\r\n });\r\n\r\n $(document).delegate(\".js-rail-booking-input\", \"focus\", function () {\r\n if ($(window).width() > 992) {\r\n $(this).closest(\".rail-booking__input\").addClass(\"is-open\");\r\n }\r\n });\r\n\r\n $(document).delegate(\".js-rail-booking-input\", \"blur\", function () {\r\n if ($(window).width() > 992) {\r\n $(this).closest(\".rail-booking__input\").removeClass(\"is-open\");\r\n }\r\n });\r\n\r\n //economy click\r\n $(document).delegate(\r\n \".js-economy-target .js-rail-booking-field\",\r\n \"click\",\r\n function () {\r\n if (documentWidth > 992) {\r\n $(this).addClass(\"rail-booking__item--border--active\");\r\n $(this).children(\".js-rail-travelers\").fadeIn();\r\n } else {\r\n $(\"html\").addClass(\"no-scroll\");\r\n $(this).next(\".js-rail-travelers\").toggleClass(\"show-mobile\");\r\n }\r\n }\r\n );\r\n\r\n //remove input text\r\n $(document).delegate(\".js-close-tmenu\", \"click\", function () {\r\n var validToClose = true;\r\n if ($(\".js-passenger-young .js-number-passenger\").text() !== \"0\") {\r\n $(\".js-young-age\").each(function () {\r\n if (!$(this).val()) {\r\n $(this).next().fadeIn();\r\n validToClose = false;\r\n } else {\r\n $(this).next().fadeOut();\r\n }\r\n });\r\n }\r\n\r\n if ($(\".js-passenger-young .js-number-passenger\").text() !== \"0\") {\r\n $(\".js-young-age\").each(function () {\r\n if ($(this).val() > 27 || $(this).val() < 0) {\r\n $(this).next().next().fadeIn();\r\n $(\".js-passenger-young-period\").addClass(\"err\");\r\n validToClose = false;\r\n } else {\r\n $(this).next().next().fadeOut();\r\n $(\".js-passenger-young-period\").removeClass(\"err\");\r\n }\r\n });\r\n }\r\n if (validToClose) {\r\n $(\"html\").removeClass(\"no-scroll\");\r\n $(\".js-rail-travelers\").fadeOut();\r\n }\r\n });\r\n\r\n $(document).delegate(\".js-search-filed\", \"focus\", function () {\r\n if (documentWidth > 992) {\r\n $(this)\r\n .closest(\".booking-search__field\")\r\n .addClass(\"rail-booking__item--border--active\");\r\n }\r\n });\r\n\r\n $(document).delegate(\".js-search-filed\", \"blur\", function () {\r\n if (documentWidth > 992) {\r\n $(this)\r\n .closest(\".rail-booking__item--border\")\r\n .removeClass(\"rail-booking__item--border--active\");\r\n }\r\n });\r\n});\r\n\r\n//***/ Functions ***//\r\n\r\n// Update auto complete after type\r\nfunction getResult(input) {\r\n var dataUrl;\r\n if (isExternal) {\r\n dataUrl = \"/fa/rail/getPlaces/?Keyword=\";\r\n } else {\r\n dataUrl = \"/fa/rail/getPlaces/?SearchType=2&Keyword=\";\r\n }\r\n\r\n if (input.val()) {\r\n dataUrl += input.val();\r\n }\r\n return dataUrl;\r\n}\r\n\r\n// Exchange Btn\r\nfunction railExchange() {\r\n var input1 = $(\".js-rail-origin-location\");\r\n var input2 = $(\".js-rail-destinations-location\");\r\n\r\n var inputList1 = input1.next(\".js-autocomplete-list\");\r\n var inputList2 = input2.next(\".js-autocomplete-list\");\r\n\r\n $(input2).swap(input1);\r\n\r\n $(inputList2).swap(inputList1);\r\n\r\n input1\r\n .removeClass(\"js-rail-origin-location\")\r\n .addClass(\"js-rail-destinations-location\");\r\n input2\r\n .removeClass(\"js-rail-destinations-location\")\r\n .addClass(\"js-rail-origin-location\");\r\n}\r\n\r\n// Exchange Btn\r\nfunction domesticRailExchange() {\r\n var input1 = $(\".js-rail-domestic-origin-location\");\r\n var input2 = $(\".js-rail-domestic-destinations-location\");\r\n\r\n var inputList1 = input1.next(\".js-autocomplete-list\");\r\n var inputList2 = input2.next(\".js-autocomplete-list\");\r\n\r\n $(input2).swap(input1);\r\n\r\n $(inputList2).swap(inputList1);\r\n\r\n input1\r\n .removeClass(\"js-rail-domestic-origin-location\")\r\n .addClass(\"js-rail-domestic-destinations-location\");\r\n input2\r\n .removeClass(\"js-rail-domestic-destinations-location\")\r\n .addClass(\"js-rail-domestic-origin-location\");\r\n}\r\n\r\n// init datePicker\r\nfunction railDatePicker() {\r\n setTimeout(function () {\r\n $(\".js-rail .js-rail-departure\").pickDate({\r\n dateFormat: \"yy/mm/dd\",\r\n dateFormatEn: \"yy M dd\",\r\n nextText: \"ماه بعد\",\r\n prevText: \"ماه قبل\",\r\n nextTextEn: \"next month\",\r\n prevTextEn: \"prev month\",\r\n changeMonthAllow: false,\r\n changeYearAllow: false,\r\n showButtonPanel: true,\r\n isDependenceDates: false,\r\n showCurrentAtPos: 0,\r\n numberOfMonths: $(window).width() > 991 ? 2 : 1,\r\n minDate: -0,\r\n customClass: \"lightTheme\",\r\n showAllMonthsinList: false,\r\n langType: \"fa\",\r\n blurInmobile: true,\r\n dayNamesShortFa: [\r\n \"1شنبه\",\r\n \"2شنبه\",\r\n \"3شنبه\",\r\n \"4شنبه\",\r\n \"5شنبه\",\r\n \"جمعه\",\r\n \"شنبه\",\r\n ],\r\n dayNamesShortEn: [\"Su\", \"Mo\", \"TU\", \"We\", \"Th\", \"Fr\", \"Sa\"],\r\n enterDateTitle: \"تاریخ رفت\",\r\n exitDateTitle: \"تاریخ برگشت\",\r\n enterDateTitleEn: \"Departure date\",\r\n exitDateTitleEn: \"Retun date\",\r\n fillHidden: {\r\n enable: true,\r\n outPut: \"en\", //en | Dependent_On_SelectedDate | fa\r\n customformatInhidden: \"YYYY-MM-DD\",\r\n },\r\n\r\n onSelectEvent: function () {\r\n var $this = $(this);\r\n var routeType = $this\r\n .closest(\".js-rail\")\r\n .find(\".js-routes-select input:checked\")\r\n .val();\r\n var timeSelect = RailInfo.SearchTakesTime;\r\n\r\n setTimeout(function () {\r\n if (routeType === \"twoWay\" && $this.is(\".js-pick-date-rail\")) {\r\n $this\r\n .closest(\".js-rail-departure\")\r\n .find(\".js-pick-date2\")\r\n .trigger(\"focus\");\r\n }\r\n }, 10);\r\n\r\n $('.js-title--before-select').hide();\r\n $('.js-title--after-select').show();\r\n $('.js-rail-departure').addClass('date-selected');\r\n },\r\n });\r\n }, 100);\r\n}\r\n\r\n// Calc TotalPassengers\r\nfunction calcSum(obj) {\r\n sum = 0;\r\n obj.find(\"li.js-passenger-list .js-number-passenger\").each(function () {\r\n sum += Number($(this).text());\r\n obj.find(\".js-traveles-number .js-number\").text(sum);\r\n });\r\n}\r\n\r\n// Check Routes Type\r\nfunction railRoutesTypeCheck(value, obj) {\r\n if (value === \"rail-twoWay\") {\r\n $(obj).closest(\".js-rail\").find(\".js-rail-return-date\").show();\r\n\r\n // $(\".js-one-or-two-route-container\").show().addClass(\"js-section-active\");\r\n\r\n $(\".js-rail-departure\").addClass(\"two-calendar\");\r\n\r\n sum = $(\r\n \".js-booking-section.active .js-one-or-two-route-passengers-sum\"\r\n ).text();\r\n } else if (value === \"rail-oneWay\") {\r\n sum = $(\r\n \".js-booking-section.active .js-one-or-two-route-passengers-sum\"\r\n ).text();\r\n\r\n $(obj).closest(\".js-rail\").find(\".js-rail-return-date\").hide();\r\n\r\n $(\".js-rail-departure\").removeClass(\"two-calendar\");\r\n\r\n // $(\".js-one-or-two-route-container\").show().addClass(\"js-section-active\");\r\n }\r\n}\r\n\r\n// Search Rail Base On Entered Data\r\nfunction searchRail() {\r\n var fieldsEquelValidation = false;\r\n var valid = true;\r\n var baseUrl = isExternal ? \"/fa/rail/int/\" : \"/fa/rail/dom/\";\r\n var youngPassengerAgeIsValid = true;\r\n var adult =\r\n Number(\r\n $(this)\r\n .siblings(\".js-economy-target\")\r\n .find(\".js-rail-adults-number\")\r\n .text()\r\n ) || 1;\r\n var elder = Number(\r\n $(this).siblings(\".js-economy-target\").find(\".js-rail-old-number\").text()\r\n );\r\n var youngCount = Number(\r\n $(this).siblings(\".js-economy-target\").find(\".js-rail-young-number\").text()\r\n );\r\n var selectedTime;\r\n var returnSelectedTime;\r\n var toCityInput;\r\n var fromCityInput;\r\n var departureClock;\r\n var returnClock;\r\n var fromStationInput;\r\n var isExclusive = $(\".js-exclusive-compartment\").prop(\"checked\");\r\n var classType = $(\".js-list-type:checked\").val();\r\n\r\n $(this).closest(\".js-rail\").find(\".error-message\").remove();\r\n\r\n fromCityInput = isExternal\r\n ? $(\".js-rail-origin-location\").attr(\"data-code\")\r\n : $(\".js-rail-domestic-origin-location\").attr(\"data-code\");\r\n fromStationInput = isExternal\r\n ? $(\".js-rail-origin-location\").attr(\"station\")\r\n : $(\".js-rail-domestic-origin-location\").attr(\"station\");\r\n toCityInput = isExternal\r\n ? $(\".js-rail-destinations-location\").attr(\"data-code\")\r\n : $(\".js-rail-domestic-destinations-location\").attr(\"data-code\");\r\n var toCityStaionInput = isExternal\r\n ? $(\".js-rail-destinations-location\").attr(\"station\")\r\n : $(\".js-rail-domestic-destinations-location\").attr(\"station\");\r\n\r\n departureClock = selectedTime\r\n ? moment(selectedTime, \"hh:mm\").format(\"HH-mm\")\r\n : \"\";\r\n\r\n returnClock = returnSelectedTime\r\n ? moment(returnSelectedTime, \"hh:mm\").format(\"HH-mm\")\r\n : \"\";\r\n\r\n // Check If Origin & Destination Are The Same\r\n if (fromCityInput && toCityInput && toCityInput === fromCityInput) {\r\n valid = false;\r\n fieldsEquelValidation = false;\r\n }\r\n\r\n // Check If Origin Is Selected\r\n if (fromCityInput) {\r\n baseUrl += fromCityInput + \"-\";\r\n } else {\r\n valid = false;\r\n }\r\n\r\n // Check If Destination Is Selected\r\n if (toCityInput) {\r\n // baseUrl += $(this).closest(\".js-rail\").find(\".js-rail-to-city\").data(\"code\");\r\n baseUrl += toCityInput;\r\n } else {\r\n valid = false;\r\n }\r\n\r\n // Check If Origin Is Station\r\n if (fromStationInput === \"true\") {\r\n baseUrl += \"/?ot=1\";\r\n } else {\r\n baseUrl += \"/?ot=2\";\r\n }\r\n\r\n // Check If Destination Is Station\r\n if (toCityStaionInput === \"true\") {\r\n baseUrl += \"&dt=1\";\r\n } else {\r\n baseUrl += \"&dt=2\";\r\n }\r\n\r\n !isExternal ? (baseUrl += \"&ST=2\") : \"\";\r\n\r\n // Went Date\r\n var startDatevalue = $(this).closest(\".js-rail\").find(\".js-pick-date-rail\");\r\n if (startDatevalue.val() && startDatevalue.next().val()) {\r\n var departureDate = startDatevalue.next().val()\r\n ? moment(startDatevalue.next().val(), \"YYYY-MM-DD\").format(\"YYYY/MM/DD\")\r\n : \"\";\r\n baseUrl += \"&d=\" + departureDate;\r\n } else {\r\n valid = false;\r\n }\r\n\r\n // Return Date\r\n if (\r\n $(this)\r\n .closest(\".js-rail\")\r\n .find('.js-routes-select input:radio[name*=\"routeType\"]:checked')\r\n .val() === \"rail-twoWay\"\r\n ) {\r\n var endDateValue = $(this).closest(\".js-rail\").find(\".js-pick-date2-rail\");\r\n\r\n if (endDateValue.val() && endDateValue.next().val()) {\r\n var returnDate = endDateValue.next().val()\r\n ? moment(endDateValue.next().val(), \"YYYY-MM-DD\").format(\"YYYY/MM/DD\")\r\n : \"\";\r\n baseUrl += \"&r=\" + returnDate;\r\n } else {\r\n valid = false;\r\n }\r\n }\r\n\r\n if (isExternal) {\r\n if (adult > 0) {\r\n for (var i = 0; i < adult; i++) {\r\n baseUrl += \"&p=28\";\r\n }\r\n }\r\n\r\n if (elder > 0) {\r\n for (var i = 0; i < elder; i++) {\r\n baseUrl += \"&p=60\";\r\n }\r\n }\r\n\r\n var youngsArr = [];\r\n $(\".js-young-age\").each(function () {\r\n youngsArr.push(Number($(this).val()));\r\n });\r\n\r\n if (youngsArr.length > 0) {\r\n for (var i = 0; i < youngsArr.length; i++) {\r\n var age = convertFaToEnNumber(youngsArr[i]);\r\n if (Number(age) && Number(age) <= 27 && Number(age) > 0) {\r\n baseUrl += \"&p=\" + age;\r\n } else {\r\n valid = false;\r\n youngPassengerAgeIsValid = false;\r\n youngsArr[i].isValid = false;\r\n }\r\n }\r\n }\r\n } else {\r\n baseUrl += \"&AC=\" + adult;\r\n elder ? (baseUrl += \"&CC=\" + elder) : \"\";\r\n youngCount ? (baseUrl += \"&IC=\" + youngCount) : \"\";\r\n }\r\n // If Compartment Is Exclusive\r\n if (!isExternal) {\r\n if (isExclusive) {\r\n baseUrl += \"&ex=True\";\r\n } else {\r\n baseUrl += \"&ex=False\";\r\n }\r\n }\r\n\r\n if (!isExternal) {\r\n if (classType === \"family-class\") {\r\n baseUrl += \"&ct=3\";\r\n } else if (classType === \"womens-only-class\") {\r\n baseUrl += \"&ct=2\";\r\n } else if (classType === \"mens-only-class\") {\r\n baseUrl += \"&ct=1\";\r\n }\r\n }\r\n\r\n var isJalali =\r\n $(this).closest(\".js-rail\").find(\".js-pick-date-rail\").attr(\"data-lang\") ===\r\n \"fa\";\r\n\r\n if (isJalali) {\r\n baseUrl += \"&dpf=fa\";\r\n } else {\r\n baseUrl += \"&dpf=en\";\r\n }\r\n\r\n if (!valid) {\r\n if (!fieldsEquelValidation) {\r\n $(this)\r\n .closest(\".js-rail\")\r\n .append(\r\n \"فیلد مبدا و مقصد نمی‌تواند یکسان باشد\"\r\n );\r\n } else if (!youngPassengerAgeIsValid) {\r\n $(this)\r\n .closest(\".js-rail\")\r\n .append(\r\n \"سن وارد شده برای جوان صحیح نمی باشد\"\r\n );\r\n } else {\r\n $(this)\r\n .closest(\".js-rail\")\r\n .append(\r\n \"لطفا فیلدها را کامل نمایید\"\r\n );\r\n }\r\n return false;\r\n } else {\r\n window.location.assign(baseUrl);\r\n }\r\n}\r\n\r\nfunction selectTime() {\r\n var routeType = $(this)\r\n .closest(\".js-rail\")\r\n .find(\".js-routes-select input:checked\")\r\n .val();\r\n\r\n if (routeType === \"rail-twoWay\") {\r\n returnSelectedTime = $(this).text();\r\n $(\".js-return-time-label\").text(\",\" + returnSelectedTime);\r\n } else if (routeType === \"rail-oneWay\") {\r\n selectedTime = $(this).text();\r\n $(\".js-time-label\").text(\",\" + selectedTime);\r\n }\r\n\r\n $(\".js-time-list\").fadeOut();\r\n}\r\n\r\nfunction convertFaToEnNumber(number) {\r\n number = String(number);\r\n return number.replace(/[۰-۹]/g, function (chr) {\r\n var persian = [\"۰\", \"۱\", \"۲\", \"۳\", \"۴\", \"۵\", \"۶\", \"۷\", \"۸\", \"۹\"];\r\n return persian.indexOf(chr);\r\n });\r\n}\r\n\r\n// Swap Elements\r\n$.fn.swap = function (elem) {\r\n elem = elem.jquery ? elem : $(elem);\r\n return this.each(function () {\r\n $(document.createTextNode(\"\"))\r\n .insertBefore(this)\r\n .before(elem.before(this))\r\n .remove();\r\n });\r\n};\r\n","var culture = '';\r\ntry {\r\n var pathName = location.pathname.split('/');\r\n\r\n culture = pathName[1];\r\n} catch (err) {\r\n\r\n}\r\nvar message1 = \"امتیاز دهید\";\r\n\r\nif (culture === 'en') {\r\n message1 = \"Rate it\";\r\n}\r\n\r\n(function ($) {\r\n var defaults = {\r\n TotalNum: 5,\r\n firstRating:null,\r\n //=====\r\n getScore: true,\r\n setScore: false,\r\n getAndSet: false,\r\n //=====\r\n fontIcon: true,\r\n iclasses: {\r\n unselect: 'fa-circle-o',\r\n select: 'fa-dot-circle-o',\r\n halfIcon:'fa fa-star-half-o'\r\n },\r\n //=====\r\n htmlelement: false,\r\n spanHeight: 20,\r\n spanWidth: 20,\r\n\r\n //=====\r\n writeScore: true,\r\n writeScoreOptions: {\r\n writeScoreText: message1\r\n },\r\n\r\n //======\r\n dynamicOption:false\r\n };\r\n\r\n $.fn.giveScore = function (options) {\r\n\r\n\r\n if (this.length == 0) {\r\n\r\n return this;\r\n }\r\n\r\n // support mutltiple elements\r\n\r\n if (this.length > 1) {\r\n\r\n this.each(function () {\r\n\r\n $(this).giveScore(options);\r\n\r\n });\r\n\r\n return this;\r\n }\r\n\r\n var settings = $.extend(true, {}, defaults, options);\r\n\r\n var base = $(this),\r\n rate1 = 0,\r\n baseRating, inputVal, objectLebgth, objectValue, objectText, oldTx,\r\n finalHtmlTags = '',\r\n //rateSystem = {},\r\n sc, tx = '';\r\n\r\n var scoreType, temp, selectedScoreNum, substr;\r\n\r\n var setup = function () {\r\n\r\n if (settings.firstRating!=null) {\r\n inputVal = settings.firstRating;\r\n } else {\r\n inputVal = base.val();\r\n }\r\n\r\n base.after('
        ').hide();\r\n\r\n baseRating = base.next('.scoresContainer');\r\n\r\n baseRating.wrap('
        ');\r\n\r\n if (settings.fontIcon) {\r\n \r\n\r\n if (settings.dynamicOption) {\r\n\r\n objectLebgth = base.children('option').length;\r\n\r\n for (var l = 0; l < objectLebgth; l++) {\r\n\r\n objectValue = base.children('option').eq(l).val();\r\n\r\n objectText = base.children('option').eq(l).text();\r\n\r\n finalHtmlTags += '';\r\n\r\n };\r\n \r\n\r\n } else {\r\n \r\n objectLebgth = settings.TotalNum;\r\n\r\n for (var l = 0; l < objectLebgth; l++) {\r\n\r\n finalHtmlTags += '';\r\n\r\n\r\n\r\n };\r\n }\r\n\r\n baseRating.html(finalHtmlTags);\r\n\r\n if (settings.writeScore) {\r\n\r\n baseRating.parent('.scoreWrapper').append('' + settings.writeScoreOptions.writeScoreText + '');\r\n\r\n scoreType = baseRating.parent().find('.rate_Score');\r\n\r\n }\r\n\r\n ///if use span\r\n } else if (settings.htmlelement) {\r\n\r\n if (settings.writeScore) baseRating.append('' + inputVal + '');\r\n\r\n for (var i = 0; i < settings.TotalNum; i++) {\r\n\r\n finalHtmlTags += '';\r\n\r\n var sel = '';\r\n\r\n for (var j = 0; j < 10; j++) {\r\n\r\n sel += '';\r\n\r\n };\r\n finalHtmlTags += sel + '';\r\n }\r\n\r\n baseRating.append(finalHtmlTags);\r\n\r\n } \r\n };\r\n\r\n var writeScore = function (value, text) {\r\n \r\n if (settings.dynamicOption) {\r\n\r\n if (text!=undefined) {\r\n\r\n baseRating.parent().find('.rate_Score').html(text);\r\n\r\n } else {\r\n \r\n baseRating.parent().find('.rate_Score').html(message1);\r\n\r\n }\r\n \r\n\r\n baseRating.val(value);\r\n\r\n } else {\r\n \r\n switch (value) {\r\n\r\n case 1: case 2: baseRating.parent().find('.rate_Score').html('بد');\r\n break;\r\n\r\n case 3: case 4: baseRating.parent().find('.rate_Score').html('خوب');\r\n break;\r\n\r\n case 5: case 6: baseRating.parent().find('.rate_Score').html('عالی');\r\n break;\r\n }\r\n\r\n }\r\n \r\n }\r\n\r\n var init = function () {\r\n\r\n setup();\r\n\r\n if ((settings.getScore && !settings.setScore && !settings.htmlelement) || (settings.getAndSet && !settings.htmlelement)) {\r\n\r\n if (settings.getAndSet) {\r\n baseRating.children().each(function (i) {\r\n\r\n if (i < inputVal) {\r\n\r\n $(this)\r\n .attr('data-rating', '1')\r\n .addClass(settings.iclasses.select)\r\n .removeClass(settings.iclasses.unselect);\r\n } else {\r\n $(this)\r\n .attr('data-rating', '0');\r\n }\r\n });\r\n rate1 = 1;\r\n }\r\n\r\n baseRating.children().hover(\r\n\r\n function () {\r\n\r\n oldTx = $(this).closest('.scoreWrapper').find('.rate_Score').text();\r\n\r\n $(this).prevAll().addBack().addClass(settings.iclasses.select).removeClass(settings.iclasses.unselect);\r\n\r\n $(this).nextAll().removeClass(settings.iclasses.select).addClass(settings.iclasses.unselect);\r\n \r\n if (settings.writeScore) {\r\n\r\n if (settings.dynamicOption) {\r\n\r\n sc = $(this).attr('data-value');\r\n\r\n tx = $(this).attr('data-text');\r\n\r\n } else {\r\n\r\n sc = parseInt($(this).index(), 10) + 1;\r\n\r\n tx = '';\r\n }\r\n \r\n\r\n writeScore(sc, tx);\r\n }\r\n },\r\n function () {\r\n if (rate1 === 0) {\r\n\r\n $(this).prevAll().addBack().removeClass(settings.iclasses.select).addClass(settings.iclasses.unselect);\r\n\r\n if (settings.writeScore) {\r\n\r\n scoreType.html(settings.writeScoreOptions.writeScoreText);\r\n\r\n }\r\n\r\n // tx = oldTx;\r\n\r\n } else if (rate1 === 1) {\r\n\r\n $(this).parent().children().each(function () {\r\n\r\n if ($(this).attr('data-rating') === '0') {\r\n\r\n $(this).removeClass(settings.iclasses.select).addClass(settings.iclasses.unselect);;\r\n\r\n } else {\r\n\r\n $(this).addClass(settings.iclasses.select).removeClass(settings.iclasses.unselect);\r\n }\r\n });\r\n if (settings.writeScore) {\r\n\r\n sc = parseInt(baseRating.find('.' + settings.iclasses.select).last().index(), 10) + 1;\r\n\r\n if (settings.dynamicOption) {\r\n\r\n tx = baseRating.find('.' + settings.iclasses.select).last().attr('data-text');\r\n\r\n }\r\n\r\n writeScore(sc,tx);\r\n }\r\n }\r\n });\r\n\r\n baseRating.children().click(function () {\r\n\r\n $(this).prevAll().addBack().attr('data-rating', '1').addClass(settings.iclasses.select);\r\n\r\n $(this).nextAll().attr('data-rating', '0');\r\n\r\n $(this).nextAll().removeClass('fa-star');\r\n\r\n rate1 = 1;\r\n\r\n selectedScoreNum = baseRating.find('.' + settings.iclasses.select).length;\r\n\r\n if (settings.writeScore) {\r\n\r\n // sc = $(this).index();\r\n\r\n writeScore(selectedScoreNum, $(this).attr('data-text'));\r\n }\r\n\r\n if (typeof inputVal !== typeof undefined && inputVal !== false) {\r\n base.val(selectedScoreNum);\r\n }\r\n\r\n });\r\n\r\n } else if (settings.setScore && !settings.getScore) {\r\n\r\n if (settings.htmlelement && !settings.fontIcon) {//html elem\r\n\r\n //substr = temp.val().split('.');\r\n inputVal = inputVal.split('.');\r\n\r\n if (inputVal[0] > 0) {\r\n\r\n baseRating.find('.rateItem').each(function (i) {\r\n\r\n if (i < inputVal[0]) {\r\n\r\n $(this).addClass('fillColor');\r\n }\r\n });\r\n baseRating.find('.fillColor').last().next().addClass('min');\r\n }\r\n else if (inputVal[0] == 0 && inputVal[1] > 0) {\r\n\r\n baseRating.find('.rateItem').first().addClass('min');\r\n }\r\n baseRating.find('.min>i').each(function (k) {\r\n\r\n if (k < inputVal[1]) {\r\n\r\n $(this).addClass('on');\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n else if (!settings.htmlelement && settings.fontIcon) {//font icon\r\n\r\n if (isInt(Number(inputVal))) {\r\n\r\n baseRating.children().each(function(i) {\r\n \r\n if (i < inputVal) {\r\n\r\n $(this)\r\n .attr('data-rating', '1')\r\n .addClass(settings.iclasses.select)\r\n .removeClass(settings.iclasses.unselect);\r\n }\r\n \r\n\r\n });\r\n } else { // number is float\r\n baseRating.children().each(function (i) {\r\n var inputValRoundDown = Math.floor(inputVal);\r\n if (i < inputValRoundDown) {\r\n $(this)\r\n .attr('data-rating', '1')\r\n .addClass(settings.iclasses.select)\r\n .removeClass(settings.iclasses.unselect);\r\n } else {\r\n $(this)\r\n .attr('data-rating', '1')\r\n .addClass(settings.iclasses.halfIcon)\r\n .removeClass(settings.iclasses.unselect);\r\n return false;\r\n }\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n init();\r\n function isInt(n) {\r\n return Number(n) === n && n % 1 === 0;\r\n }\r\n\r\n }\r\n})(jQuery);"],"names":["documentWidth","WithoutPriceModels","hotelList","$","document","width","hotelAutoSearch","$this","$destinationType","hotelAutoComplete","minLength","appendTo","next","delay","search","this","parent","find","show","addClass","source","request","response","val","ajax","url","term","dataType","success","data","hide","map","model","obj","value","title","hotelTitle","hotelSlug","slug","cityTitle","citySlug","countrySlug","countryTitle","locationType","destinationType","id","isRtl","dir","error","open","navigator","userAgent","indexOf","attr","children","css","top","off","window","close","removeClass","hasClass","select","e","ui","hotelDataModel","item","closest","remove","siblings","html","trigger","change","event","bind","resize","mouseup","is","target","has","length","hotelDatePicker","delegate","widget","autocomplete","_renderMenu","ul","items","that","each","index","Object","keys","_renderItemData","_renderItem","li","location","className","label","toggleClass","checkAlignBox","adultsString","childString","childAgeString","rooms","i","room","adult","child","childs","j","Number","valid","defaultHotelInformation","hotelStartDateEn","hotelEndDateEn","append","startDate","moment","diff","checkValidation","hotelId","roomsCount","dataPickerFormat","assign","adultCountArray","childCountArray","childAgesArray","roomNum","hotelEndDate","hotelStartDate","daysDuration","childLabels","childsCount","adultsCount","updateTemplate","key","flag","labelsArray","childsLabel","max","push","countLabelNumbers","tmpl","internalHotelList","externalHotelList","on","preventDefault","setTimeout","offset","left","pickDate","changeMonthAllow","changeYearAllow","showButtonPanel","isDependenceDates","showCurrentAtPos","numberOfMonths","minDate","customClass","showAllMonthsinList","langType","blurInmobile","dayNamesShortFa","enterDateTitle","exitDateTitle","enterDateTitleEn","exitDateTitleEn","dayNamesShortEn","onSelectEvent","daysDurationParam","duration","calcDiffDate","fillHidden","enable","outPut","customformatInhidden","pop","roomIndex","roomNumber","oldChildCount","selectedChildCount","newChildCount","childAgeIndex","childAge","splice","datepicker","click","sourceUrl","sum","routeRowTemplate","autoSearch","cityList","internalCityList","externalCityList","sortedByFeatured","sort","order","arguments","undefined","a","b","hasOwnProperty","varA","toUpperCase","varB","comparison","sortArrayObject","requestTerm","airport","airports","code","destinationInternalCityList","destinationExternalCityList","getUrl","keyword","orginPlace","flightsArr","cities","results","isFeatured","inputObj","routeType","dateFormat","dateFormatEn","nextText","prevText","nextTextEn","prevTextEn","radioCheckedValue","routesTypeCheck","slideDown","text","temp","babyNumber","adultNumber","calcSum","num","fieldsEquelValidation","toCityInput","fromCityInput","baseUrl","cabinTypeNumber","startDatevalue","endDateValue","valThis","exchange","fadeOut","last","pathname","split","after","srcType","maxDate","fadeToggle","input1","input2","inputList1","inputList2","valueHolderInMobile1","valueHolderInMobile2","swap","fn","elem","jquery","createTextNode","insertBefore","before","tripList","tripinitializeSearch","tripAutoSearch","setInitialData","defaultOriginListOfTrip","defaultDestinationListOfTrip","inputType","tripAutoComplete","tripTitle","tripDataModel","tagManager","type","searchType","localStorage","getItem","setItem","tripDatePicker","icon","tripcheckAlignBox","tripStartDateEn","tripEndDateEn","tripCheckValidation","destination","origin","tripAdultCountArray","tripChildCountArray","tripChildAgesArray","tripEndDate","tripStartDate","updateTripTemplate","newTemplate","tripcountLabelNumbers","utc","tripCalcDiffDate","hover","CoverUrl","Href","Id","Slug","Title","Type","input","dataUrl","getJSON","done","serverResponse","TourQuickSearchs","focus","keydown","insuranceLocationList","appendTravelTimeList","empty","forEach","insuranceDays","insuranceLocation","get","status","innerWidth","personCount","datepickerItemLength","yearRange","Date","isExternal","RailInfo","ModelInitializer","Get","railList","screen","youngs","getResult","railExchange","domesticRailExchange","railRoutesTypeCheck","searchRail","fromStationInput","youngPassengerAgeIsValid","elder","youngCount","isExclusive","prop","classType","number","format","youngsArr","age","String","replace","chr","isValid","selectTime","returnSelectedTime","selectedTime","SearchTakesTime","autoSearchRail","externalRailStationsList","console","warn","internalRailStationsList","validToClose","fadeIn","slideUp","newItems","rail","clientCode","country","persianLabel","engLabels","localLabel","allStation","culture","err","message1","defaults","TotalNum","firstRating","getScore","setScore","getAndSet","fontIcon","iclasses","unselect","halfIcon","htmlelement","spanHeight","spanWidth","writeScore","writeScoreOptions","writeScoreText","dynamicOption","giveScore","options","baseRating","inputVal","objectLebgth","objectValue","objectText","sc","scoreType","selectedScoreNum","n","settings","extend","base","rate1","finalHtmlTags","tx","wrap","l","eq","sel","setup","prevAll","addBack","nextAll","parseInt","first","k","Math","floor","jQuery","owlCarousel","loop","margin","rtl","responsiveClass","autoWidth","dots","nav","responsive","center","getFlightMinimumPrice","body","contains","querySelector","addEventListener","classList","toggle","style","display"],"sourceRoot":""}