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 + ">" + 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") ));
};