﻿var hurl = "/Modules/OfferManager/Handlers/reqRepeater.ashx"
var s_ddl_Rayons = ".tbl_search .ddl_Rayon";
var s_ObjectType = 1;

$(document).ready(function () {
    search_SetupEventsOnDdls();

    $(".tbl_search input[type=\"radio\"]").click(function () {
        ChangeSearchForm($(this).val());
        s_ObjectType = $(this).val();
    });

    $("input").focus(function () {
        if ($(this).attr("class") == "error")
            $(this).removeClass("error");
    });

    CrossBrouserCssChanges();
    InitCurrentObjectType();

    $("#load_more").click(function () {
        LoadMoreOffers($(this).attr("list_type"));
    });

    $.post(hurl, { target: "random3" }, function (data) { $("#hds_con").html(data); })

    // Load counr offers
    $.post(hurl, { target: "events", cmd: "countoffers", rid: "-1" }, function (data) { $("#count_all").html(data); });
    $.post(hurl, { target: "events", cmd: "countoffers", rid: "1" }, function (data) { $("#count_1").html(data); });
    $.post(hurl, { target: "events", cmd: "countoffers", rid: "2" }, function (data) { $("#count_2").html(data); });

});

function ValidIsNumber(sender) {
    var s = $(sender);
    var mask = /[^\d|.|,]/;

    s.val(s.val().replace(mask, ''));
}



// --------------------------------------------------------------------------------

function CrossBrouserCssChanges() {
    if ($.browser.opera) {
        $(".tbl_search #ddl_Currency").css("top", "2px");
    }
}

// --------------------------------------------------------------------------------

function InitCurrentObjectType() {
    $(".con_obtp_3, .con_obtp_4, .con_obtp_5").hide()
    $(".con_obtp_1").show()
}

// --------------------------------------------------------------------------------

function search_getRayonsByRegion(region) {
    $.post(hurl, { cmd: "rayon", prm: region, target: "ddl", unn: "1" }, function (data) {
        $(".tbl_search #con_Rayons").html(data);
        search_getStreetsByRayon($(".tbl_search .ddl_Rayon").val());

        $(s_ddl_Rayons).change(function () {
            search_getStreetsByRayon($(this).val());
        });
    });
}

// --------------------------------------------------------------------------------

function search_getStreetsByRayon(rayon) {
    $.post(hurl, { cmd: "street", target: "ddl", prm: rayon, unn: "1" }, function (data) {
        $(".tbl_search #con_Streets").html(data);
    })
}

// --------------------------------------------------------------------------------

function search_SetupEventsOnDdls() {
    $(".tbl_search .ddl_Region").change(function () {
        search_getRayonsByRegion($(this).val());
    });

    $(".tbl_search .ddl_Rayon").change(function () {
        search_getStreetsByRayon($(this).val());
    });
}

// --------------------------------------------------------------------------------

function ChangeSearchForm(arg) {
    $(".con_obtp_1, .con_obtp_3, .con_obtp_4, .con_obtp_5").hide();
    $(".con_obtp_" + arg).show();
}

// --------------------------------------------------------------------------------

function LoadOffers(skip) {
    $.post(hurl, { target: "offers", cmd: "all",  _skip: skip, }, function (data) { $("#con_pre_offers").html(data); })
}

// --------------------------------------------------------------------------------

function SearchOffers(skip, sv) {
    
    if(sv)
        SaveSavedOps();

    var btn = $("#btn_Search");
    btn.val("  ");
    btn.addClass("loading");

    var s_OfferType = $(".tbl_search .ddl_OfferType").val();
    var s_UnderType = $(".tbl_search .ddl_UnderType").val();
    var s_Region = $(".tbl_search .ddl_Region").val();
    var s_Rayon = $(".tbl_search .ddl_Rayon").val();
    var s_Street = $(".tbl_search .ddl_Street").val();
    var s_RoomsFrom = $("#ddl_RoomsFrom").val();
    var s_RoomsTo = $("#ddl_RoomsTo").val();
    var s_SqurFrom = 0;
    var s_SqurTo = -1;
    var s_PriceFrom = $("#tb_PriceFrom").val();
    var s_PriceTo = $("#tb_PriceTo").val();
    var s_Currency = $("#ddl_Currency").val();
    var s_Code = $("#tb_Code").val();
    var s_WithPhoto = $("#chb_WithPhoto").attr("checked");

    if(s_Code > 0)
        document.location = "/offer/" + s_Code.replace('.', '') + "/";

    switch (s_ObjectType) {
        case "3":
            s_SqurFrom = $("#tb_ComSqueFrom").val();
            s_SqurTo = $("#tb_ComSqueTo").val();
            break;
        case "4":
            s_SqurFrom = $(".tbl_search #tb_LandSquFrom").val();
            s_SqurTo = $(".tbl_search #tb_LandSquTo").val();
            break;
        case "5":
            s_SqurFrom = $("#tb_ComSqueFrom").val();
            s_SqurTo = $("#tb_ComSqueTo").val();
            break;
    }



    $.post(hurl, { target: "offers", cmd: "search", objtp: s_ObjectType, region: s_Region, rayon: s_Rayon, street: s_Street,
        romfr: s_RoomsFrom, romto: s_RoomsTo, sqfrm: s_SqurFrom, sqto: s_SqurTo, under: s_UnderType, _skip: skip,
        prfrom: s_PriceFrom, prto: s_PriceTo, oftp: s_OfferType, curr: s_Currency, code: s_Code, wPho: s_WithPhoto
    },
    function (data) {
        db["last_results"] = data;
        $("#con_pre_offers").html(data);
        btn.val("Найти");
        btn.removeClass("loading");

        $("#load_more").removeClass("loading");

        $("#load_more").click(function () {
            LoadMoreOffers($(this).attr("list_type"));
        });
    });
}

// ----------------------------------------------------------------------------------

function LoadMoreOffers(list_type) {
    var to_skip = $(".pre_off").length;
    var url_prms = location.toString().split('/');
    $("#load_more").addClass("loading");
    switch (list_type.toString())
    {
        case "all":
            $.post(hurl, { target: "offers", cmd: "all",  _skip: to_skip, }, function (data) { $("#con_pre_offers").html(data); $("#load_more").removeClass("loading");
                $("#load_more").click(function () {
                    LoadMoreOffers($(this).attr("list_type"));
                });
            });
            break;

        case "search":
            SearchOffers(to_skip);
            break;

        case "filter":
            switch(url_prms.length)
            {
                case 5:
                    $.post(hurl, { target: "offers", cmd: "filter",  _skip: to_skip, city: url_prms[3] }, function (data) { $("#con_pre_offers").html(data); $("#load_more").removeClass("loading");
                        $("#load_more").click(function () {
                            LoadMoreOffers($(this).attr("list_type"));
                        });
                    });
                break;
                case 6:
                    $.post(hurl, { target: "offers", cmd: "filter",  _skip: to_skip, city: url_prms[3], rayon: url_prms[4] }, function (data) { $("#con_pre_offers").html(data); $("#load_more").removeClass("loading");
                        $("#load_more").click(function () {
                            LoadMoreOffers($(this).attr("list_type"));
                        });
                    });
                break;
                case 8:
                    $.post(hurl, { target: "offers", cmd: "filter",  _skip: to_skip, city: url_prms[3], rayon: url_prms[4], oftp: url_prms[5], obtp: url_prms[6] }, function (data) { $("#con_pre_offers").html(data); $("#load_more").removeClass("loading");
                        $("#load_more").click(function () {
                            LoadMoreOffers($(this).attr("list_type"));
                        });
                    });
                break;
                case 9:
                    $.post(hurl, { target: "offers", cmd: "filter",  _skip: to_skip, city: url_prms[3], rayon: url_prms[4], oftp: url_prms[5], obtp: url_prms[6], rooms: url_prms[7] }, function (data) { $("#con_pre_offers").html(data); $("#load_more").removeClass("loading");
                        $("#load_more").click(function () {
                            LoadMoreOffers($(this).attr("list_type"));
                        });
                    });
                break;
            }
            break;
    }
}

function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}
