var specialDays = new Array(); function FilterBindingPageLoadedEvent() { $("#dpTourDateFrom").datepicker("option", $.extend({ showMonthAfterYear: false }, $.datepicker.regional.ru)); $("#dpTourDateTo").datepicker("option", $.extend({ showMonthAfterYear: false }, $.datepicker.regional.ru)); LoadFilter(null); $("#searchfilter select[bindingtype][autopostback=true]").change(LoadFilter) } function LoadFilter(h) { //alert("DEBUG"); /* $("#searchResultTable").hide(); $("#searchPagerInfo").hide(); $("#searchPager").hide(); var e = ""; if (h != null && h.originalTarget != null) { if ($(h.originalTarget).is("select")) { e = $(h.originalTarget).attr("bindingtype") } else { if (h.originalTarget) { e = $(h.originalTarget).parent().parent().attr("bindingtype") } } } $("#searchfilter").mask(); var k = {}; $("#searchfilter [bindingtype]").each(function (m) { var n = GetBindingControlValue(this); if (n == null) { n = "" } k[$(this).attr("bindingtype")] = n }); var a = "{}"; if (d != null) { if (d.def != null) { var c = d.def[0]; if (c.length > 0 && (k.DepartFrom == null || k.DepartFrom.length == 0 || k.DepartFrom == "-10")) { k.DepartFrom = c; e = "DepartFrom" } c = d.def[1]; if (c.length > 0 && (k.Country == null || k.Country.length == 0 || k.Country == "-10")) { k.Country = c; e = "Country" } c = d.def[2]; if (c.length > 0 && (k.TourType == null || k.TourType.length == 0 || k.TourType == "-10")) { k.TourType = c; e = "TourType" } k.Room = ""; k.City = "" } var l = ""; if (d.df != null && d.df.length > 0) { l = "where mwSpoData.sd_ctkeyfrom in (" + d.df[0]; for (var j = 1; j < d.df.length; j++) { l = l + "," + d.df[j] } l = l + ")" } var g = ""; if (d.c != null && d.c.length > 0) { g = "where mwSpoData.sd_cnkey in (" + d.c[0]; for (var j = 1; j < d.c.length; j++) { g = g + "," + d.c[j] } g = g + ")" } var f = ""; if (d.tt != null && d.length > 0) { f = "where mwSpoData.sd_tourtype in (" + d.tt[0]; for (var j = 1; j < d.tt.length; j++) { f = f + "," + d.tt[j] } f = f + ")" } a = "{"; if (l.length > 0) { a = a + '"DepartFrom":"' + l + '"' } if (g.length > 0) { a = a + (a.length > 2 ? "," : "") + '"Country":"' + g + '"' } if (f.length > 0) { a = a + (a.length > 2 ? "," : "") + '"TourType":"' + f + '"' } //if(f.length == 0){ a = a + ',"TourType":"-10"'} a = a + "}" //alert(a); } var b = servicesUrl + "FilterBindingScriptService.asmx"; // document.write(b + "/GetFilterByGet?jsNodes=" + JSON.stringify(k) + "&jsFilter=" + a + "&jsChanged=" + JSON.stringify(e) + "&schemeID=0&nodesCount=-1&cbf=Success"); if (b == null || b == "") { alert("Не задан адрес сервиса загрузки фильтра у элемента searchfilter"); return } $.ajax({ url: b + "/GetFilterByGet?jsNodes=" + JSON.stringify(k) + "&jsFilter=" + a + "&jsChanged=" + JSON.stringify(e) + "&schemeID=0&nodesCount=-1&cbf=Success", data: "{}", dataType: "jsonp", error: ErrorFilterBindingResponse }) */ // departureCityKey=611&countryToKey=10&cityKeys=609,621 $("#searchfilter").mask(); var departureCityKey = "1"; if ($("#df option:selected").val() && $("#df option:selected").val() !="-10") departureCityKey = $("#df option:selected").val(); else $("#df option").val(departureCityKey).attr("selected","selected"); var countryToKey =86; if ($("#cn option:selected").val() && $("#cn option:selected").val() !="-10") countryToKey = $("#cn option:selected").val(); else $("#cn option").val(countryToKey).attr("selected","selected"); var cityKeys = $('#ct input:checkbox:checked').map(function () {return this.value;}).get().join(","); //$('#gallery').append("

http://www.ukrest.ru/ru/i/toursearch/toursearch_files/FilterBindingScriptService.asmx/GetFilterByGet/index1.php?departureCityKey="+departureCityKey+"&countryToKey="+countryToKey+"&cityKeys="+cityKeys+"&cbf=Success"); $.ajax({ url: "/ru/proxy.php?departureCityKey="+departureCityKey+"&countryToKey="+countryToKey+"&cityKeys="+cityKeys+"&cbf=Success", // url: "http://www.ukrest.ru/ru/i/toursearch/toursearch_files/FilterBindingScriptService.asmx/GetFilterByGet/index1.php?departureCityKey="+departureCityKey+"&countryToKey="+countryToKey+"&cityKeys="+cityKeys+"&cbf=Success", cache:true, success:Success, error: ErrorFilterBindingResponse }); } function StopFilterLoading() { alert("Извините, по данному запросу не найдено ни одного предложения. Попробуйте изменить параметры запроса: Город отправления, Страна, Тип тура.") } var bindingCounter = 0; var bindingValidator = true; function unique(a) { tmp = new Array(0); for(i=0;i 0); ++bindingCounter } if (bindingCounter > 2 && !bindingValidator) { items = [] } if (schemeNode.t == "CalendarTourDatesJs") { BindCalendars(new Array("dpTourDateFrom", "dpTourDateTo"), items) } else { if ($("#" + schemeNode.n).is("select")) { BindDropDownList(schemeNode, items) } else { if ($("#" + schemeNode.n).is("div")) { BindCheckBoxList(schemeNode, items) } } } } if (bindingCounter > 2 && !bindingValidator) { StopFilterLoading(); $("#btnSearch").attr("disabled", true) } else { $("#btnSearch").attr("disabled", false) } */ /////////////////////////// var myObject = eval(response); myObject = myObject[0]; // for (var i = 0; i <= myObject.DepartCities.length - 1; i++) { // alert(myObject.DepartCities[i].name ); // } BindDropDownList( {"apb":true,"fi":"","n":"df","t":"DepartFrom","v":""} , myObject.DepartCities); BindDropDownList( {"apb":true,"fi":"","n":"cn","t":"Country","v":""} , myObject.Countries); var an = new Array(myObject.Durations.length); for (var i = 0; i <= myObject.Durations.length - 1; i++) { an[i] = myObject.Durations[i].ID; } var b = unique(an); var nights = []; for (var i = 0; i <= b.length - 1; i++) { nights.push({"ID":b[i],"n": b[i]}) ; } BindCheckBoxList({"apb":false,"fi":"Все","n":"dr","t":"Nights","v":""}, nights); BindCheckBoxList({"apb":true,"fi":"Все","n":"ct","t":"City","v":""}, myObject.Cities); BindCheckBoxList({"apb":false,"fi":"Все","n":"cat","t":"HotelStars","v":""}, myObject.HotelStars); BindCheckBoxList({"apb":false,"fi":"Все","n":"ht","t":"Hotel","v":""}, myObject.Hotels); BindCheckBoxList({"apb":false,"fi":"Все","n":"pn","t":"Pansion","v":"-10"}, myObject.Pansions); tourdates = new Array(myObject.TourDates.length); for (var i = 0; i <= myObject.TourDates.length - 1; i++) { MD_Y=myObject.TourDates[i].date.substring(6,10); MD_D=myObject.TourDates[i].date.substring(0,2); MD_M=myObject.TourDates[i].date.substring(3,5); tourdates [i]= MD_M + "/" + MD_D + "/" + MD_Y; } BindCalendars(new Array("dpTourDateFrom", "dpTourDateTo"),tourdates); $("#searchfilter").unmask() myafterload(); } catch(e) { /* */ } } function ErrorFilterBindingResponse(a) { //if (a.length != 0) { if (location.href.indexOf("debug=true") > 0) { alert(a.status + " " + a.statusText + " " + a.responseText) } else { alert(a.status + " " + a.statusText) } } //kostya $("#searchfilter").unmask() } function BeforeShowDayEventHandler(a) { return CheckDateIsInArray(a, specialDays) ? [true, "specialday"] : [true, ""] } function SearchButtonClick() { var c = $("#searchfilter").attr("navigateUrl"); var e = $("#searchResultTable"); //alert(c); //alert(e); if (c != null && c.length > 0) { var b = ""; if ($("#priceLimit").val()!="") b += "&priceLimit=" + $("#priceLimit").val();////kostya $("#searchfilter [bindingtype]").each(function (j) { var f = $(this).attr("bindingtype"); if (f == "CalendarTourDatesJs") { if ($("#dpTourDateFrom").val() != null && $("#dpTourDateFrom").val().length > 0) { b = (b.length > 0 ? b + "&" : "") + "dateFrom=" + $("#dpTourDateFrom").val() } if ($("#dpTourDateTo").val() != null && $("#dpTourDateTo").val().length > 0) { b = (b.length > 0 ? b + "&" : "") + "&dateTo=" + $("#dpTourDateTo").val() } } else { var g = GetBindingControlValue(this); if (g != "") { var h = ""; if (f == "DepartFrom") { h = "departFrom" } else { if (f == "Country") { h = "country" } else { if (f == "TourType") { h = "tourtype" } else { if (f == "Resort") { h = "resort" } else { if (f == "City") { h = "city" } else { if (f == "Tour") { h = "tour" } else { if (f == "Hotel") { h = "hotel" } else { if (f == "Room") { h = "room" } else { if (f == "Nights") { h = "nights" } else { if (f == "HotelStars") { h = "stars" } else { if (f == "Pansion") { h = "pansion" } else { if (f == "CalendarTourDates") { h = "dateFrom" } else { if (f == "Adults") { h = "adults" } else { if (f == "Childs") { h = "childs" } } } } } } } } } } } } } } if (h != "") { if (b != "") { b = b + "&" } b = b + h + "=" + g } } } }); //alert(b); if (b != "" && $("#searchfilter").attr("navigateUrl").length > 0) { if ($("#lstPageSize") != null) { b = b + "&pageSize=" + $("#lstPageSize").val() } window.open($("#searchfilter").attr("navigateUrl") + "?" + b) } } else { if (e != null) { var a = new Object(); $("#searchfilter [bindingtype]").each(function (h) { var f = $(this).attr("bindingtype"); if (f == "CalendarTourDatesJs") { if ($("#dpTourDateFrom").val() != null && $("#dpTourDateFrom").val().length > 0) { a.tdf = $("#dpTourDateFrom").val() } if ($("#dpTourDateTo").val() != null && $("#dpTourDateTo").val().length > 0) { a.tdt = $("#dpTourDateTo").val() } } else { var g = GetBindingControlValue(this); if (g != "") { if (f == "DepartFrom") { a.df = g } else { if (f == "Country") { a.cn = g } else { if (f == "TourType") { a.tt = g } else { if (f == "Resort") { a.rs = g } else { if (f == "City") { a.ct = g } else { if (f == "Tour") { a.tour = g } else { if (f == "Hotel") { a.ht = g } else { if (f == "Room") { a.rm = g } else { if (f == "Nights") { a.n = g } else { if (f == "HotelStars") { a.hs = g } else { if (f == "Pansion") { a.pn = g } else { if (f == "CalendarTourDates") { a.tdf = g } else { if (f == "Adults") { a.ad = g } else { if (f == "Childs") { a.ch = g } } } } } } } } } } } } } } } } }); //alert(a.ht); if (a.ch>0 && $("#fca").val()!="") a.fca = $("#fca").val(); if (a.ch>1 && $("#sca").val()!="") a.sca = $("#sca").val(); alert(JSON.stringify(a)); a.aqm = GetQuotaFilter("Flight"); a.hqm = GetQuotaFilter("Hotel"); a.psize = $("#lstPageSize").val(); PrepareNewSearch(); $("#searchResultTable").attr("searchFilter", JSON.stringify(a)); GetSearchResults() } else { alert("Не задана ссылка на экран вывода результата / на странице не найден элемент searchResultTable.") } } } function GetQuotaFilter(c) { var a = $("#quotaFilter"); var e = $("#cb" + c + "Yes", a).attr("checked"); var f = $("#cb" + c + "Request", a).attr("checked"); var b = $("#cb" + c + "No", a).attr("checked"); if (e) { if (f) { if (b) { return 7 } else { return 5 } } else { if (b) { return 3 } else { return 1 } } } else { if (f) { if (b) { return 6 } else { return 4 } } else { if (b) { return 2 } else { return 7 } } } } function checkBoxClick() { if ($(this).val() == "") { // if ($(this).attr("checked") == "checked") { // alert("on"); $("input[value!='']", $(this).parent().parent()).attr("checked", "checked") } else { // alert("off"); //if ($("input:checked", $(this).parent().parent()).length == 0) { $("input[value!='']", $(this).parent().parent()).removeAttr('checked');//.attr("checked", "") // } } } else { if ($(this).attr("checked") != "") { $("input[value='']", $(this).parent().parent()).removeAttr('checked');//.attr("checked", "") } else { if ($("input:checked", $(this).parent().parent()).length == 0) { $("input:first", $(this).parent().parent()).attr("checked", "checked") } } } } function BindDropDownList(e, a) { var g = $("#" + e.n); var f = GetBindingControlValue($(g)); $("#" + e.n + ">option").remove(); if (e.fi != "") { $(g).append($("").val("").html(e.fi)) } for (var c = 0; c <= a.length - 1; c++) { if (a[c].ID < 0) { $(g).append($("").val(a[c].n).html(a[c].n)) } else { $(g).append($("").val(a[c].ID).html(a[c].n)) } } var b = 0; if (e.n == "cn") { b = 1 } if (e.n == "tt") { b = 2 } if (d != null && d.def != null && d.def[b] != null && d.def[b].length > 0) { $("#" + e.n + ">option[value=" + d.def[b] + "]").attr("selected", "selected"); d.def[b] = "" } else { $("#" + e.n + ">option[value=" + f + "]").attr("selected", "selected") } }///////////////// function BindCheckBoxList(e, i) { var g = $("#" + e.n); var k = $(g).attr("repeatDirection") == "horizontal" ? "span" : "div"; var l = "<" + k + ">"; var h = GetBindingControlValue($(g)); $("#" + e.n + ">" + k).remove(); if (e.fi != "") { var a = $('').val("").click(checkBoxClick); if (e.apb != false) { $(a).click(LoadFilter) } $(g).append($(l).append(a).append($('').html(e.fi))) } for (var f = 0; f <= i.length - 1; f++) if (i[f].n!="") ////////////kostya { var c = i[f].ID >= 0 ? i[f].ID : i[f].n; var b = e.n + "_" + f; var a = $('').val(c).click(checkBoxClick); if (e.apb != false) { $(a).click(LoadFilter) } $(g).append($(l).append(a).append($('').html(i[f].n))) } if (h != "") { h = "," + h + ","; $("input[value!='']", g).each(function () { if (h.indexOf("," + $(this).val() + ",") >= 0) { $(this).attr("checked", "checked") } }) } if ($("input[value!='']:checked", g).length == 0) { if ($("input[value='']", g).length > 0) { $("input[value='']", g).attr("checked", "checked") } else { $("input", g).attr("checked", "checked") } } } ///////////////// function BindCalendars(f, a) { specialDays = a; for (var c = 0; c <= f.length - 1; c++) { var b = $("#" + f[c]); if (b != null && b.length > 0) { $(b).datepicker("destroy"); $(b).datepicker({ minDate: 0, maxDate: "+1Y", beforeShowDay: BeforeShowDayEventHandler }); if (specialDays.length > 0) { var e = $(b).datepicker("getDate"); if (e == null || !CheckDateIsInArray(e, specialDays)) { $(b).datepicker("setDate", new Date(specialDays[0])) } } } } } function CheckDateIsInArray(f, e) { var b = false; for (var c = 0; c <= e.length - 1; c++) { var a = new Date(e[c]); if (f.getDate() == a.getDate() && f.getMonth() == a.getMonth() && f.getYear() == a.getYear()) { b = true; break } if ((f.getDate() < a.getDate() && f.getMonth() == a.getMonth() && f.getYear() == a.getYear()) || (f.getDate() < a.getDate() && f.getMonth() < a.getMonth() && f.getYear() == a.getYear()) || (f.getDate() < a.getDate() && f.getMonth() < a.getMonth() && f.getYear() < a.getYear())) { break } } return b } function GetSchemeNode(b) { var a = new Object(); a.a = $(b).attr("assembly"); a.apb = $(b).attr("autoPostBack"); if ($(b).attr("firstItem") != null && $(b).attr("firstItem").length > 0) { a.fi = escape($(b).attr("firstItem")) } a.n = b.id; a.pns = $(b).attr("parentNodes"); a.s = $(b).attr("sort"); a.t = $(b).attr("bindingtype"); a.v = GetBindingControlValue(b); return a } function GetBindingControlValue(a) { if ($(a).is("select")) { return $(a).val() } else { if (a.id == "dpTourDateFrom") { } else { if ($(a).is("div")) { if ($("input[value='']", a).attr("checked") == "checked") { return "" } else { var b = ""; $("input[value!='']:checked", a).each(function () { if (b.length == 0) { b = this.value } else { b = b + "," + this.value } }); return b } } } } } function OnSetTourDateFrom() { var b = $("#dpTourDateTo").val(); var f = new Date(b.split(".")[2], b.split(".")[1] - 1, b.split(".")[0]); var c = $("#dpTourDateFrom").val(); var e = new Date(c.split(".")[2], c.split(".")[1] - 1, c.split(".")[0]); if (f < e) { var a = ""; f = new Date(e.getTime() + 86400000); if (("" + f.getDate()).length < 2) { a = a + "0" } a = a + f.getDate() + "."; if (("" + f.getMonth()).length < 2) { a = a + "0" } a = a + (f.getMonth() + 1) + "." + f.getFullYear(); $("#dpTourDateTo").val(a) } $( "#" + "dateFrom1" + "div" ).html($.datepicker.formatDate("dd.mm.yy", $("#dpTourDateFrom").datepicker("getDate") )); $( "#" + "dateTo1" + "div" ).html($.datepicker.formatDate("dd.mm.yy", $("#dpTourDateTo").datepicker("getDate") )); } var prevDateTo; function OnTourDateToClick() { prevDateTo = $("#dpTourDateTo").val() $( "#" + "dateFrom1" + "div" ).html($.datepicker.formatDate("dd.mm.yy", $("#dpTourDateFrom").datepicker("getDate") )); $( "#" + "dateTo1" + "div" ).html($.datepicker.formatDate("dd.mm.yy", $("#dpTourDateTo").datepicker("getDate") )); } function OnSetTourDateTo() { var a = $("#dpTourDateTo").val(); var e = new Date(a.split(".")[2], a.split(".")[1] - 1, a.split(".")[0]); var b = $("#dpTourDateFrom").val(); var c = new Date(b.split(".")[2], b.split(".")[1] - 1, b.split(".")[0]); if (e < c) { alert("Внимание. Задан неверный промежуток времени. Правая граница даты заезда не может быть меньше левой границы. Изменение отменено."); $("#dpTourDateTo").val(prevDateTo) } $( "#" + "dateFrom1" + "div" ).html($.datepicker.formatDate("dd.mm.yy", $("#dpTourDateFrom").datepicker("getDate") )); $( "#" + "dateTo1" + "div" ).html($.datepicker.formatDate("dd.mm.yy", $("#dpTourDateTo").datepicker("getDate") )); };