﻿function isDigit(evt) 
{
    if (evt.keyCode >= 48 && evt.keyCode <= 57 || evt.keyCode >= 96 && evt.keyCode <= 105 || evt.keyCode >= 37 && evt.keyCode <= 40 || evt.keyCode == 8 || evt.keyCode == 32 || evt.keyCode == 9 || evt.keyCode == 46) 
    {
        return true;
    }
    else return false;
}


function OkSettlement() {
    $.fn.colorbox.close();
    InitSettlement();
}

function InitSettlement() {
    // очистить #SelSettlementList
    $("#SelSettlementList").empty();

    var nameList = "";

    // пройтись по выбранным н.а. и добавить их названия через запятую в #CommercialTypeList
    $("input:checked.settlement").each(function() {
        if (nameList == "") nameList += $(this).attr("name");
        else nameList += ", " + $(this).attr("name");
    }
	    );

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenSettlements").val(nameList);
    $("#SelSettlementList").text(nameList);
}

function InitStreet() {

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenStreet").val($("#TextStreet").val());
}

function OkCT() {
    $.fn.colorbox.close();
    InitCT();
}

function InitCT() {
    // очистить #CommercialTypeList
    $("#CommercialTypeList").empty();
    var idList = "";
    var nameList = "";

    // пройтись по выбранным н.а. и добавить их названия через запятую в #CommercialTypeList
    $("input:checked.commercialType").each(function() {
        if (nameList == "") nameList += $(this).attr("name");
        else nameList += ", " + $(this).attr("name");

        if (idList == "") idList += $(this).val();
        else idList += ", " + $(this).val();
    }
	    );

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenCT").val(idList);
    $("#CommercialTypeList").text(nameList);
}

function OkSOT() {
    $.fn.colorbox.close();
    InitSOT();
}

function InitSOT() {
    // очистить #CommercialTypeList
    $("#SOTList").empty();
    var idList = "";
    var nameList = "";

    // пройтись по выбранным н.а. и добавить их названия через запятую в #SOTList
    $("input:checked.sot").each(function() {
        if (nameList == "") nameList += $(this).attr("name");
        else nameList += ", " + $(this).attr("name");

        if (idList == "") idList += $(this).val();
        else idList += ", " + $(this).val();
    }
	    );

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenSOT").val(idList);
    $("#SOTList").text(nameList);
}

function OkGSK() {
    $.fn.colorbox.close();
    InitGSK();
}

function InitGSK() {
    // очистить #CommercialTypeList
    $("#GSKList").empty();
    var idList = "";
    var nameList = "";

    // пройтись по выбранным н.а. и добавить их названия через запятую в #GSKList
    $("input:checked.gsk").each(function() {
        if (nameList == "") nameList += $(this).attr("name");
        else nameList += ", " + $(this).attr("name");

        if (idList == "") idList += $(this).val();
        else idList += ", " + $(this).val();
    }
	    );

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenGSK").val(idList);
    $("#GSKList").text(nameList);
}

function InitRooms() {
    var nameList = "";

    // пройтись по выбранным н.а. и добавить их названия через запятую в #CommercialTypeList
    $("input:checked.rooms").each(function() {
        if (nameList == "") nameList += $(this).val();
        else nameList += ", " + $(this).val();
    }
	    );

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenRooms").val(nameList);
}

function InitBuildingType() {
    // очистить #SelSettlementList
    $("#SelBuildingTypeList").empty();

    var nameList = "";
    var nameList2 = "";

    // пройтись по выбранным н.а. и добавить их названия через запятую в #CommercialTypeList
    $("input:checked.buildingtype").each(function() {
        if (nameList == "") nameList += $(this).attr("value");
        else nameList += ", " + $(this).attr("value");

        if (nameList2 == "") nameList2 += $(this).attr("name");
        else nameList2 += ", " + $(this).attr("name");
    }
	    );

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenBuildingType").val(nameList);
    $("#SelBuildingTypeList").text(nameList2);
}

function OkBuildingType() {
    $.fn.colorbox.close();
    InitBuildingType();
}

function InitCompletionDate() {
    // очистить #SelSettlementList
    $("#SelCompletionDateList").empty();
    $("#completiondateBtn").hide();

    // проверить выбраны ли новостройки
    $("input:checked.buildingtype").each(function() {
        if ($(this).attr("value") == "329") {
            // если да, показываем "кнопку" выбора и инициализируем элемент
            $("#completiondateBtn").show();
            var nameList = "";

            // пройтись по выбранным н.а. и добавить их названия через запятую в 
            $("input:checked.completiondate").each(function() {
                if (nameList == "") nameList += $(this).attr("value");
                else nameList += ", " + $(this).attr("value");
            });

            $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenCompletionDate").val(nameList);
            $("#SelCompletionDateList").text(nameList);
        }
        else {
            $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenCompletionDate").empty();
        }
    });
}

function OkCompletionDate() {
    $.fn.colorbox.close();
    InitCompletionDate();
}

function pageClicked(pageN) {
    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenPageNumber").val(pageN);
    $("form").submit();
}

function showhideSearchPanel() {
    if ($("div#searchbox").is(":hidden")) {
        $("div#searchboxId").hide().removeClass("activeZone");
        $("a#buttonById").text("поиск по номеру объекта").removeClass("activeZone").addClass("linkInSearch");
        $("div#searchbox").addClass("activeZone").slideDown("slow");
        $("a#buttonByParams").text("скрыть").removeClass("linkInSearch").addClass("activeZone");
    } else {
        $("div#searchbox").slideUp().removeClass("activeZone");
        $("a#buttonByParams").text("поиск по параметрам").removeClass("activeZone").addClass("linkInSearch");
    }
}

function showhideSearchByIdPanel() {
    if ($("div#searchboxId").is(":hidden")) {
        $("div#searchbox").hide().removeClass("activeZone");
        $("a#buttonByParams").text("поиск по параметрам").removeClass("activeZone").addClass("linkInSearch");
        $("div#searchboxId").addClass("activeZone").slideDown("slow");
        $("a#buttonById").text("скрыть").removeClass("linkInSearch").addClass("activeZone");
    } else {
    $("div#searchboxId").slideUp().removeClass("activeZone");
    $("a#buttonById").text("поиск по номеру объекта").removeClass("activeZone").addClass("linkInSearch");
    }
}

function openObjectById() {
    if ($("#TextId").val().length > 0) {
        window.open("/Rus/Base/Flats/View/" + $("#TextId").val() + ".aspx");
    }
    else alert("Введите номер объекта");
}

// *** Service Calling Proxy Class

function serviceProxy(serviceUrl) {
    var _I = this;
    this.serviceUrl = serviceUrl;

    // *** Call a wrapped object
    this.invoke = function(method, data, callback) {
        // *** Convert input data into JSON - REQUIRES Json2.js
        var json = JSON.stringify(data);

        // *** The service endpoint URL       
        var url = _I.serviceUrl + "/" + method;

        $.ajax({
            url: url,
            data: json,
            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            processData: false,
            success: function(msg) {
                callback(msg.d);
            }
        });
    }
}

function ConstructRentTypeControl(jsonRes) {
    $("div#rentTypeObjList").empty();
    $.each(jsonRes, function(i) {
        $("div#rentTypeObjList").append("<input id=\"rto\" class=\"rto\" value=\"" + jsonRes[i].Key + "\"  type=\"checkbox\" name=\"" + jsonRes[i].Value + "\" /> " + jsonRes[i].Value + "<br/>");
    }
    )
}

function LoadRentTypeObjList(rentTypeId) {
    var Proxy = new serviceProxy("/WebServices/RealtyObjects/Guides.asmx");
    Proxy.invoke("GetRentObjType", { rentType: rentTypeId }, ConstructRentTypeControl);
}

function OkRentType() {
    $.fn.colorbox.close();
    InitRentType();
}

function InitRentType() {
    // очистить #CommercialTypeList
    $("#RentList").empty();
    var idRentTypeList = "";
    var idRentTypeObjList = "";
    var nameList1 = "";
    var nameList2 = "";


    $("#SelectRentType option:selected").each(function() {
        if (nameList1 == "") nameList1 += $(this).text();
        else nameList1 += ", " + $(this).text();

        if (idRentTypeList == "") idRentTypeList += $(this).val();
        else idRentTypeList += ", " + $(this).val();
    }
	    );

    $("input:checked.rto").each(function() {
        if (nameList2 == "") nameList2 += ": " + $(this).attr("name");
        else nameList2 += ", " + $(this).attr("name");

        if (idRentTypeObjList == "") idRentTypeObjList += $(this).val();
        else idRentTypeObjList += ", " + $(this).val();
    }
	    );

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenRentType").val(idRentTypeList);
    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenRentTypeObj").val(idRentTypeObjList);
    $("#RentList").text(nameList1 + nameList2);
}


function InitGeneralSpace() {

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenGeneralSpaceFrom").val($("#TextFromGenSpace").val());
    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenGeneralSpaceTo").val($("#TextToGenSpace").val());
}

function InitLandSpace() {

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenLandSpaceFrom").val($("#TextFromLandSpace").val());
    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenLandSpaceTo").val($("#TextToLandSpace").val());
}

function InitPrice() {

    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenPriceFrom").val($("#TextPriceFrom").val());
    $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenPriceTo").val($("#TextPriceTo").val());
}


$(document).ready(function() {

    InitBuildingType();
    InitCompletionDate();
    InitStreet();

    // тип здания (для квартир)
    $("#inlineBuildingType").colorbox({ width: "400px", height: "510px", overlayClose: false, inline: true, href: "#buildingtype_list" });
    $("#ButtonOkBuildingType").click(function() { OkBuildingType(); InitCompletionDate(); });
    $("#UncheckBuildingType").click(function() { $("input:.buildingtype").each(function() { this.checked = false; }) });
    $("#CheckBuildingType").click(function() { $("input:.buildingtype").each(function() { this.checked = true; }) });
    // срок сдачи в эксплуатацию
    $("#inlineCompletionDate").colorbox({ width: "400px", height: "510px", overlayClose: false, inline: true, href: "#completiondate_list" });
    $("#ButtonOkCompletionDate").click(function() { OkCompletionDate() });
    $("#UncheckCompletionDate").click(function() { $("input:.completiondate").each(function() { this.checked = false; }) });
    $("#CheckCompletionDate").click(function() { $("input:.completiondate").each(function() { this.checked = true; }) });


    // населенные пункты
    $("#inline").colorbox({ width: "400px", height: "510px", overlayClose: false, inline: true, href: "#settlement_list" });
    $("#ButtonOkSettlement").click(function() { OkSettlement() });
    InitSettlement();
    $("#UncheckSettlements").click(function() { $("input:.settlement").each(function() { this.checked = false; }) });
    $("#CheckSettlements").click(function() { $("input:.settlement").each(function() { this.checked = true; }) });

    // типы коммерческой недвижимости
    $("#inlineCT").colorbox({ width: "400px", height: "380px", overlayClose: false, inline: true, href: "#commercialtype_list" });
    $("#ButtonOkCT").click(function() { OkCT() });
    InitCT();
    $("#UncheckCT").click(function() { $("input:.commercialType").each(function() { this.checked = false; }) });
    $("#CheckCT").click(function() { $("input:.commercialType").each(function() { this.checked = true; }) });

    // соты
    $("#inlineSOT").colorbox({ width: "400px", height: "380px", overlayClose: false, inline: true, href: "#sot_list" });
    $("#ButtonOkSOT").click(function() { OkSOT() });
    InitSOT();
    $("#UncheckSOT").click(function() { $("input:.sot").each(function() { this.checked = false; }) });
    $("#CheckSOT").click(function() { $("input:.sot").each(function() { this.checked = true; }) });

    // ГСК
    $("#inlineGSK").colorbox({ width: "400px", height: "380px", overlayClose: false, inline: true, href: "#gsk_list" });
    $("#ButtonOkGSK").click(function() { OkGSK() });
    InitGSK();
    $("#UncheckGSK").click(function() { $("input:.gsk").each(function() { this.checked = false; }) });
    $("#CheckGSK").click(function() { $("input:.gsk").each(function() { this.checked = true; }) });

    // тип аренды и тип объектов в аренде
    $("#SelectRentType").change(function() { LoadRentTypeObjList($(this).val()) });
    $("#inlineRentType").colorbox({ width: "400px", height: "380px", overlayClose: false, inline: true, href: "#rentType_box" });
    $("#ButtonOkRentType").click(function() { OkRentType() });
    InitRentType();

    // paging
    $(".pageN").click(function() { pageClicked($(this).attr("pageN")) });

    // rooms
    $("input:.rooms").click(function() { });

    $("#SubmitSearch").click(function() {
        InitRooms();
        InitGeneralSpace();
        InitLandSpace();
        InitPrice();
        InitBuildingType();
        InitCompletionDate();
        InitStreet();
        pageClicked(1);
    });


    $("a#buttonByParams").click(function() { showhideSearchPanel() });
    $("a#buttonById").click(function() { showhideSearchByIdPanel() });
    $("#ButtonSearchById").click(function() { openObjectById() });

    $("tr.objectrow").mouseover(function() { $(this).css("cursor", "pointer"); })
    $("tr.objectrow").click(function() { window.open($(this).attr("href")); })

    // сортировка
    $("#byExclusive").click(function() { $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenOrderCol").val(""); pageClicked(1); })
    $("#byPrice").click(function() { $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenOrderCol").val("AgencyPrice"); pageClicked(1); })
    $("#byCreated").click(function() { $("#ctl00_ContentPlaceHolderMain_ctl00_HiddenOrderCol").val("Created"); pageClicked(1); })

    InitGeneralSpace();
    InitLandSpace();
    InitPrice();
    InitRooms();

    // проверка ввода в числовых полях только числа
    $("#TextFromGenSpace").keydown(function(event) { return isDigit(event); })
    $("#TextToGenSpace").keydown(function(event) { return isDigit(event); })

    $("#TextFromLandSpace").keydown(function(event) { return isDigit(event); })
    $("#TextToLandSpace").keydown(function(event) { return isDigit(event); })

    $("#TextPriceFrom").keydown(function(event) { return isDigit(event); })
    $("#TextPriceTo").keydown(function(event) { return isDigit(event); })

    $("#TextId").keydown(function(event) { return isDigit(event); })
});