﻿$(function() {

    /* REQUEST & VISA STATUS BLOCK */
    $('.text', '.block .status').each(function() {

        $(this).data('value', $(this).attr('value'));

    }).focus(function() {

        if ($(this).val() == $(this).data('value'))
            $(this).val('').removeClass('defaultValue');

    }).blur(function() {

        if ($(this).val() == '')
            $(this).val($(this).data('value')).addClass('defaultValue');

    });

});


var getOrderStatus = function(dgCodeId, lStatus) {
    var $dgCode = $('#' + dgCodeId);
    var dgCode = $dgCode.val();

    if ($dgCode.data('value') && dgCode == $dgCode.data('value')) {
        dgCode = '';
    }

    if (dgCode.length == 0) {
        $dgCode.focus();
        return false;
    }

    $("#" + lStatus).html('');

    $.ajax({
        type: "POST",
        url: "/interfaces/dbService.asmx/getOrderStatus",
        data: "{dgCode: '" + dgCode + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            $("#" + lStatus).html(evt.d);
        },
        error: function(event, request, settings) {
            alert("Error requesting page !" + settings + "");
        }
    });
} 

var flightQuotaCities;
function setFlightQuotaDirect(cities, closeId) {
    var img = document.getElementById('imgAviaCityQuota');
    if (cities == "/") {
        img.style.visibility = "hidden";
    }
    else {
        img.style.visibility = "visible";
    }

    flightQuotaCities = cities;
    if (closeId != "") {
        var close = document.getElementById(closeId);
        close.selectedIndex = 0;
    }
}

function getFlightsQuota(dateId) {
    var dateEl = document.getElementById(dateId);
    var $block = $("#flightQuotaHolder").parents('.block');
    blockLoading($block);
    //alert(flightQuotaCities + "  " + dateEl.value);
    $.ajax({
        type: "POST",
        url: "/interfaces/dbService.asmx/getFlightQuota",
        data: "{cityKey: '" + flightQuotaCities + "',dateFrom: '" + dateEl.value + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            $("#flightQuotaHolder").html('');
            $("#flightQuotaHolder").append(evt.d);
            blockLoaded($block);
        },
        error: function(event, request, settings) {
            alert("Error requesting page news !" + settings + "");
            blockLoaded($block);
        }
    });
}

function getFlightsQuotaForwardBack(dateId, holderId) {
    var flightQuotaCitiesTmp = flightQuotaCities;
    var dateEl = document.getElementById(dateId);
    if (holderId == "flightQuotaHolderBack") {
        try {
            var newKeys = flightQuotaCities.split("/");
            flightQuotaCitiesTmp = newKeys[1] + "/" + newKeys[0];
        }
        catch (err) {
        }
    }
    var $block = $("#" + holderId).parents('.block');
    blockLoading($block);
    //alert(flightQuotaCities + "  " + dateEl.value);
    $.ajax({
        type: "POST",
        url: "/interfaces/dbService.asmx/getFlightQuota",
        data: "{cityKey: '" + flightQuotaCitiesTmp + "',dateFrom: '" + dateEl.value + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            $("#" + holderId).html('');
            $("#" + holderId).append(evt.d);
            blockLoaded($block);
        },
        error: function(event, request, settings) {
            alert("Error requesting page news !" + settings + "");
            blockLoaded($block);
        }
    });
}

var rateServiceZakaz;
function setRateServiceZakaz(zakaz) {
    var btn = document.getElementById('btnRateServiceZakaz');
    if (zakaz == "") {
        btn.style.visibility = "hidden";
    }
    else {
        btn.style.visibility = "visible";
    }
    rateServiceZakaz = zakaz;
}

function getRateServiceZakaz() {
    document.location.href = '/personal/rateService/?dg_key=' + rateServiceZakaz;
}

function cityWeather(parentId, title, temp, cond, descr) {
    $("#" + parentId + "_h3CityName").html(title);
    $("#" + parentId + "_sTemp").html(temp);
    $("#" + parentId + "_sCond").html(descr);
    $("#" + parentId + "_wImg").attr('src',"/i/weather/" + cond.toString() + ".jpg");
    $("#" + parentId + "_wImg").attr('alt',descr);
}
function cityWeatherRe(parentId, title, temp, cond, descr) {
    $("#" + parentId + "_wcity").html(title);
    $("#" + parentId + "_wgraf").html(temp);
    $("#" + parentId + "_wgraf").attr("title", descr);
    $("#" + parentId + "_wgraf").css("background-image", "url(/i/base/weathers/" + cond.toString() + ".jpg)");
}
function yourCity(oldCityId, newCityId) {
    if (oldCityId != newCityId) {
        var retUrl = escape(document.location.href);
        document.location.href = "/cityFrom/?key=" + newCityId + "&returnUrl=" + retUrl;
    }
}

function yourManager(countryKey, regionSalesId, oldManagerId, newManagerId) {
    if (oldManagerId != newManagerId) {
        var retUrl = escape(document.location.href);
        document.location.href = "/setCookie/?key=yourmanager_" + countryKey + "_" + regionSalesId + "&val=" + newManagerId + "&returnUrl=" + retUrl;
    }
}

function getMoreTours(placeholderId, countryKey, cityFromKey, tourType, existingIds, isSpo, cityId) {
    $(document.body).css("cursor", "wait");
    $.ajax({
        type: "POST",
        url: "/interfaces/tours.asmx/getMoreTours",
        data: "{countryKey: " + countryKey +
              ",cityFromKey: " + cityFromKey +
              ",tourType: '" + tourType +
              "',existingIds: '" + existingIds +
              "',isSpo: " + isSpo +
              ",cityId: " + cityId +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (evt, request, settings) {
            $('#' + placeholderId).next().hide();
            $('#' + placeholderId).replaceWith(evt.d);
            $(document.body).css("cursor", "auto");

        },
        error: function (event, request, settings) {
            $(document.body).css("cursor", "auto");
            alert("Error requesting page!" + settings + "");
        }
    });
}

function ddlCountryHotelLoadChange() {
    var $block = $('#' + holderPrefix + 'ddlCityHotelLoad').parents('.block');
    blockLoading($block);
    $.ajax({
        type: "POST",
        url: "/interfaces/searchparamsHotelLoad.asmx/countryChanged",
        data: "{country: " + $("#" + holderPrefix + "ddlCountryHotelLoad").val() + 
              ",cityFrom: " + cityFromKey +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            updateSelect('ddlCityHotelLoad', evt.d.cities, 'ddlCityHotelLoadChange()');
            updateCheckBoxList('categoriesHotelLoad', evt.d.categories, "categoriesHotelLoadChanged()", makeLabel, 'nowrap');
            updateSelect('ddlHotelHotelLoad', evt.d.hotels, 'hotelsHotelLoadChange()');
            updateSelectWithSelected('ddlCityFromHotelLoad', evt.d.citiesFrom, '', evt.d.cityFromKey);
            blockLoaded($block);
        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
            blockLoaded($block);
        }
    });
}

function ddlCityHotelLoadChange() {
    var $block = $('#' + holderPrefix + 'ddlHotelHotelLoad').parents('.block');
    blockLoading($block);
    $.ajax({
        type: "POST",
        url: "/interfaces/searchparamsHotelLoad.asmx/cityChanged",
        data: "{country: " + $("#" + holderPrefix + "ddlCountryHotelLoad").val() +
              ",city: " + $("#" + holderPrefix + "ddlCityHotelLoad").val() +
              ",cityFrom: " + cityFromKey +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            updateCheckBoxList('categoriesHotelLoad', evt.d.categories, "categoriesHotelLoadChanged()", makeLabel, 'nowrap');
            updateSelect('ddlHotelHotelLoad', evt.d.hotels, 'hotelsHotelLoadChange()');
            updateSelectWithSelected('ddlCityFromHotelLoad', evt.d.citiesFrom, '', evt.d.cityFromKey);
            blockLoaded($block);
        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
            blockLoaded($block);
        }
    });
}

function categoriesHotelLoadChanged() {
    var $block = $('#' + holderPrefix + 'ddlHotelHotelLoad').parents('.block');
    blockLoading($block);
    $.ajax({
        type: "POST",
        url: "/interfaces/searchparamsHotelLoad.asmx/categoryChanged",
        data: "{country: " + $("#" + holderPrefix + "ddlCountryHotelLoad").val() +
              ",city: " + $("#" + holderPrefix + "ddlCityHotelLoad").val() +
              ",categoryKeys: " + getSelectedListItems('categoriesHotelLoad') +
              ",cityFrom: " + cityFromKey +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            updateSelect('ddlHotelHotelLoad', evt.d.hotels, 'hotelsHotelLoadChange()');
            updateSelectWithSelected('ddlCityFromHotelLoad', evt.d.citiesFrom, '', evt.d.cityFromKey);
            blockLoaded($block);
        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
            blockLoaded($block);
        }
    });
}
function hotelsHotelLoadChange() {
    var $block = $('#' + holderPrefix + 'ddlCityFromHotelLoad').parents('.block');
    blockLoading($block);
    $.ajax({
        type: "POST",
        url: "/interfaces/searchparamsHotelLoad.asmx/hotelChanged",
        data: "{country: " + $("#" + holderPrefix + "ddlCountryHotelLoad").val() +
              ",city: " + $("#" + holderPrefix + "ddlCityHotelLoad").val() +
              ",categoryKeys: " + getSelectedListItems('categoriesHotelLoad') +
              ",hotel: " + $("#" + holderPrefix + "ddlHotelHotelLoad").val() +
              ",cityFrom: " + cityFromKey +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            updateSelectWithSelected('ddlCityFromHotelLoad', evt.d.citiesFrom, '', evt.d.cityFromKey);
            blockLoaded($block);
        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
            blockLoaded($block);
        }
    });
}

function goSearchHotelLoadWeek(direction) {

    var oldDate = $("#" + TBdate).val();
    if (direction == '+') {
        $("#" + TBdate).datepick('setDate', 'c+1w');
    } else {
        $("#" + TBdate).datepick('setDate', 'c-1w');
    }
    if (oldDate != $("#" + TBdate).val()) {
        $('#' + bshowClintId).click();
    }
}

function goSearchHotelLoad(parentId, holderId) {
    var days = $("#" + parentId + "_TBdays").val();
    if (isNaN(days)) {
        alert("Количество дней от 1 до 21");
        return;
    } else {
        if (days < 1 || days > 21) {
            alert("Количество дней от 1 до 21");
            return;
        }
    }
    if ($("#" + holderPrefix + "ddlCountryHotelLoad").val() == 0) {
        alert("Выберите страну");
        return;
    }
    
    $("#" + parentId + "_Bshow").attr('disabled', true);
    var $block = $('#' + holderId).parents('.block');
    blockLoading($block);
    $.ajax({
        type: "POST",
        url: "/interfaces/searchparamsHotelLoad.asmx/getHotelLoad",
        data: "{country: " + $("#" + holderPrefix + "ddlCountryHotelLoad").val() +
              ",city: " + $("#" + holderPrefix + "ddlCityHotelLoad").val() +
              ",categoryKeys: " + getSelectedListItems('categoriesHotelLoad') +
              ",hotel: " + $("#" + holderPrefix + "ddlHotelHotelLoad").val() +
              ",dateStart: '" + $("#" + TBdate).val() + "'" +
              ",days: " + $("#" + parentId + "_TBdays").val() +
              ",cityFrom: " + $("#" + holderPrefix + "ddlCityFromHotelLoad").val() +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            $("#" + holderId).html('');
            $("#" + holderId).append(evt.d);
            $("#" + parentId + "_Bshow").attr('disabled', false);
            blockLoaded($block);
        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
            $("#" + parentId + "_Bshow").attr('disabled', false);
            blockLoaded($block);
        }
    });
}

var spoCountry = -1;
function ddlTipSpoChange() {
    var $block = $("#" + holderPrefix + "ddlTipSpo").parents('.block');
    blockLoading($block);
    $.ajax({
        type: "POST",
        url: "/interfaces/searchparamsSpo.asmx/tipeChanged",
        data: "{spoType: " + spoType +
              ",tipe: " + $("#" + holderPrefix + "ddlTipSpo").val() +
              ",country: " + spoCountry +
              ",cityFrom: " + cityFromKey +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            updateSelectWithSelected('ddlCountrySpo', evt.d.countries, 'ddlCountrySpoChange()', evt.d.countryKey);
            updateSelectWithSelected('ddlCityFromSpo', evt.d.citiesFrom, '', evt.d.fromCityKey);
            blockLoaded($block);
        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
            blockLoaded($block);
        }
    });
}

function ddlCountrySpoChange() {
    var $block = $("#" + holderPrefix + "ddlCityFromSpo").parents('.block');
    blockLoading($block);
    $.ajax({
        type: "POST",
        url: "/interfaces/searchparamsSpo.asmx/countryChanged",
        data: "{spoType: " + spoType +
              ",tipe: " + $("#" + holderPrefix + "ddlTipSpo").val() +
              ",country: " + $("#" + holderPrefix + "ddlCountrySpo").val() +
              ",cityFrom: " + cityFromKey +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            updateSelectWithSelected('ddlCityFromSpo', evt.d.citiesFrom, '', evt.d.fromCityKey);
            blockLoaded($block);
        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
            blockLoaded($block);
        }
    });
}

function goSpoPage(page) {
    $("#" + spoParentId + "_Bshow").attr('disabled', true);
    
    var cb = document.getElementById('CBdateSpo');
    var dBegin = "";
    var dEnd = "";
    if (cb.checked) {
        var dBegin = $("#" + TBdateBegin).val();
        var dEnd = $("#" + TBdateEnd).val();
    }
    var $block = $("#" + spoParentId + "_Bshow").parents('.block');
    var $res = $("#" + spoHolderId).find('.block');
    blockLoading($block);
    blockLoading($res);
    var city = $("#" + holderPrefix + "ddlCityFromSpo").val();
    var $cbNoFlight = $('#CBNoFlight');
    if ($cbNoFlight.length > 0 && $cbNoFlight.attr('checked'))
        city = "0";

    $.ajax({
        type: "POST",
        url: "/interfaces/searchparamsSpo.asmx/getSpo",
        data: "{spoType: " + spoType +
              ",tipe: " + $("#" + holderPrefix + "ddlTipSpo").val() +
              ",country: " + $("#" + holderPrefix + "ddlCountrySpo").val() +
              ",cityFrom: " + cityFromKey +
              ",dateBegin: '" + dBegin + "'" +
              ",dateEnd: '" + dEnd + "'" +
              ",cityFrom: " + city +
              ",pageNum: " + page +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            $("#" + spoHolderId).html('');
            $("#" + spoHolderId).append(evt.d);
            $("#" + spoParentId + "_Bshow").attr('disabled', false);
            blockLoaded($block);
            blockLoaded($res);
        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
            $("#" + spoParentId + "_Bshow").attr('disabled', false);
            blockLoaded($block);
            blockLoaded($res);
        }
    });
}

var sortDirect = 0;
function goSearchBestPrice(sortKey) {
    $("#" + spoParentId + "_Bshow").attr('disabled', true);
    //var $block = $("#" + spoParentId + "_Bshow").parents('.block');
    var $res = $("#" + spoHolderId).find('.block');
    //blockLoading($block);
    blockLoading($res);

    $.ajax({
        type: "POST",
        url: "/interfaces/searchparamsSpo.asmx/getBestPrice",
        data: "{cityFrom: '" + $("#" + holderPrefix + "ddlCityFromSpo").val() +
              "',sortKey: " + sortKey +
              ",sortDirect: " + sortDirect +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            $("#" + spoHolderId).html('');
            $("#" + spoHolderId).append(evt.d);
            $("#" + spoParentId + "_Bshow").attr('disabled', false);
            //blockLoaded($block);
            blockLoaded($res);
            if (sortDirect == 1)
                sortDirect = 0;
            else
                sortDirect = 1;
        },
        error: function(event, request, settings) {
            alert("Error requesting page!" + settings + "");
            $("#" + spoParentId + "_Bshow").attr('disabled', false);
            //blockLoaded($block);
            blockLoaded($res);
        }
    });
}

var newsType = 1;
function checkNewsType(nType) {
    newsType = nType;
    if (nType == 3) {
        $('#ddlNewsRazdel').css({ visibility: "visible" });
    } else {
        $('#ddlNewsRazdel').css({ visibility: "hidden" });
    }
}

function getNewsList(page) {
    var showPager = "false";
    if (document.getElementById("trArc").style.display == "none") {
        var vH1Title = document.getElementById("h1Title");
        if(vH1Title != null)
            document.getElementById("h1Title").innerHTML = "Архив новостей";
        showPager = "true";
    }
    $.ajax({
        type: "POST",
        url: "/interfaces/dbService.asmx/getNewsList",
        data: "{newsType: '" + newsType.toString() + "'" +
              ",newsRegionSales: '" + $("#" + holderPrefix + "ddlNewsRegion").val() + "'" +
              ",newsRazdel: '" + $("#" + holderPrefix + "ddlNewsRazdel").val() + "'" +
              ",newsCityFrom: '" + $("#" + holderPrefix + "ddlCityFrom").val() + "'" +
              ",newsPage: '" + page.toString() + "'" +
              ",showPager: '" + showPager + "'" +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            $("#newsListHolder").html('');
            $("#newsListHolder").append(evt.d);
        },
        error: function(event, request, settings) {
            alert("Error requesting page news !" + settings + "");
        }
    });
}

function getNewsListRe(page) {
    var showPager = "false";
    if (document.getElementById("trArc").style.display == "none") {
        var vH1Title = document.getElementById("h1Title");
        if (vH1Title != null)
            document.getElementById("h1Title").innerHTML = "Архив новостей";
        showPager = "true";
    }
    $.ajax({
        type: "POST",
        url: "/interfaces/dbService.asmx/getNewsListRe",
        data: "{newsType: '" + newsType.toString() + "'" +
              ",newsRegionSales: '" + $("#" + holderPrefix + "ddlNewsRegion").val() + "'" +
              ",newsRazdel: '" + $("#" + holderPrefix + "ddlNewsRazdel").val() + "'" +
              ",newsCityFrom: '" + $("#" + holderPrefix + "ddlCityFrom").val() + "'" +
              ",newsPage: '" + page.toString() + "'" +
              ",showPager: '" + showPager + "'" +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (evt, request, settings) {
            $("#newsListHolder").html('');
            $("#newsListHolder").append(evt.d);
        },
        error: function (event, request, settings) {
            alert("Error requesting page news !" + settings + "");
        }
    });
}

function getDayOffersPage(page) {
    $.ajax({
        type: "POST",
        url: "/interfaces/dbService.asmx/getDayOffers",
        data: "{cityFromId: " + cityFromId.toString() +
              ",sessionId: " + sessionId.toString() +
              ",pageNum: " + page.toString() +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(evt, request, settings) {
            $("#dayOffersHolder").html('');
            $("#dayOffersHolder").append(evt.d);
        },
        error: function(event, request, settings) {
            alert("Error requesting page news !" + settings + "");
        }
    });
}

function getVisaDates() {
    $("#resultsHolder").attr("disabled", true);
    var $block = $("#resultsParent");   
    blockLoading($block);    

    $.ajax({
        type: "POST",
        url: "/interfaces/visa.asmx/getVisaDates",
        data: "{startDate: '" + $("#" + ddlDepartureDateId).val() +
              "',cityFromKey: " + "1" + //$("#ddlVisaCityFrom").val() +
              ",countryKey: " + visaCountryKey +
              "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (evt, request, settings) {
            $("#resultsHolder").html('');
            $("#resultsHolder").append(evt.d);
            $("#resultsHolder").attr("disabled", false);
            blockLoaded($block);            
        },
        error: function (event, request, settings) {
            alert("Error requesting visa dates!" + settings + "");
            $("#resultsHolder").attr("disabled", false);
            blockLoaded($block);
        }
    });
}

function getVisaDepartureCities() {
    $("#filterParent").attr("disabled", true);
    var $block = $("#filterParent");
    blockLoading($block);

    $.ajax({
        type: "POST",
        url: "/interfaces/visa.asmx/getDepartureCities",
        data: "{countryKey: " + visaCountryKey + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        success: function (evt, request, settings) {
            updateSelect("ddlVisaCityFrom", evt.d, "visaCityFromChanged()");            
            $("#filterParent").attr('disabled', false);
            blockLoaded($block);
        },
        error: function (event, request, settings) {
            alert("Error requesting departure cities!" + settings + "");
            $("#filterParent").attr("disabled", false);
            blockLoaded($block);
        }
    });
}
