﻿
function init_Snelzoeker() { 

    $(document).ready(function () {

        load_Snelzoeker();
        init_Filter_Transaction_Change();
        init_Filter_Headtype_Change();
        init_Filter_Type_Change();
        init_Filter_Country_Change();
        init_Filter_State_Change();
        init_Filter_City_Change();
        init_Filter_Price_Change();

    });

}


/* Load the filters */

function load_Snelzoeker() {

    //block_Snelzoeker();

    var transaction_value = $("#ddlTransaction").val();
    var headtype_value = $("#ddlHeadtype").val();
    var type_value = $("#ddlType").val();
    var country_value = $("#ddlCountry").val();
    var state_value = $("#ddlState").val();
    var city_value = $("#ddlCity").val();
    var price_value = $("#ddlPrice").val();
    var extra_sql_value = extra_sql_parameters;

    if ((transaction_value == null) || (transaction_value == "-1")) {
        transaction_value = "";
    }
    if ((headtype_value == null) || (headtype_value == "-1")) {
        headtype_value = ""
    }
    if ((type_value == null) || (type_value == "-1")) {
        type_value = "";
    }
    if ((country_value == null) || (country_value == "-1")) {
        country_value = "";
    }
    if ((state_value == null) || (state_value == "-1")) {
        state_value = "";
    }
    if ((city_value == null) || (city_value == "-1")) {
        city_value = "";
    }
    if ((price_value == null) || (price_value == "-1")) {
        price_value = "";
    }

    
    $.ajax({
        type: 'GET',
        url: 'services/filter_properties.svc/get_Filter_Items' +
                    '?sTransaction=' + transaction_value +
                    '&sHeadtype=' + headtype_value +
                    '&sType=' + type_value +
                    '&sCountry=' + country_value +
                    '&sState=' + state_value +
                    '&sCity=' + city_value +
                    '&sPrice=' + price_value +
                    '&sExtra_SQL_Parameters=' + extra_sql_value,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (data) {

            fill_dropdownlists(data.d);

            //unblock_Snelzoeker();

        },
        error: function (ex) {
        }
    });

}


/* Fill the dropdownlists */

function fill_dropdownlists(data) {

    var transaction_name = "- Transactie -";
    var transaction_value = "-1"; 
    var transaction_count = 1;
    var transaction_selected = $("#ddlTransaction").val();

    var headtype_name = "- Hoofdtype -";
    var headtype_value = "-1";
    var headtype_count = 1;
    var headtype_selected = $("#ddlHeadtype").val();

    var type_name = "- Type -";
    var type_value = "-1"; 
    var type_count = 1;
    var type_selected = $("#ddlType").val();

    var country_name = "- Land -";
    var country_value = "-1";
    var country_count = 1;
    var country_selected = $("#ddlCountry").val();

    var state_name = "- Staat -";
    var state_value = "-1";
    var state_count = 1;
    var state_selected = $("#ddlState").val();

    var city_name = "- Gemeente -";
    var city_value = "-1";
    var city_count = 1;
    var city_selected = $("#ddlCity").val();

    var price_name = "- Prijs -";
    var price_value = "-1";
    var price_count = 1;
    var price_selected = $("#ddlPrice").val();

    for (i = 0; i < data.length; i++) {

        switch (data[i].FilterType) {
            case 1: // Transaction

                if (transaction_count == 1) {

                    $("#ddlTransaction").html("");
                    $('#ddlTransaction').append(
                            $('<option></option>').val(transaction_value).html(transaction_name)
                        );
                }

                $('#ddlTransaction').append(
                        $('<option></option>').val(data[i].Value).html(data[i].Name)
                    );

                transaction_count++;

                break;

            case 2: // Headtype

                if (headtype_count == 1) {

                    $("#ddlHeadtype").html("");
                    $('#ddlHeadtype').append(
                            $('<option></option>').val(headtype_value).html(headtype_name)
                        );
                }

                $('#ddlHeadtype').append(
                        $('<option></option>').val(data[i].Value).html(data[i].Name)
                    );

                headtype_count++;

                break;

            case 3: // Type

                if (type_count == 1) {

                    $("#ddlType").html("");
                    $('#ddlType').append(
                            $('<option></option>').val(type_value).html(type_name)
                        );
                }

                $('#ddlType').append(
                        $('<option></option>').val(data[i].Value).html(data[i].Name)
                    );

                type_count++;

                break;

            case 4: // Country

                if (country_count == 1) {

                    $("#ddlCountry").html("");
                    $('#ddlCountry').append(
                            $('<option></option>').val(country_value).html(country_name)
                        );
                }

                $('#ddlCountry').append(
                        $('<option></option>').val(data[i].Value).html(data[i].Name)
                    );

                country_count++;

                break;

            case 5: // State

                if (state_count == 1) {

                    $("#ddlState").html("");
                    $('#ddlState').append(
                            $('<option></option>').val(state_value).html(state_name)
                        );
                }

                $('#ddlState').append(
                        $('<option></option>').val(data[i].Value).html(data[i].Name)
                    );

                state_count++;

                break;

            case 6: // City

                if (city_count == 1) {

                    $("#ddlCity").html("");
                    $('#ddlCity').append(
                            $('<option></option>').val(city_value).html(city_name)
                        );
                }

                $('#ddlCity').append(
                        $('<option></option>').val(data[i].Value).html(data[i].Name)
                    );

                city_count++;

                break;

            case 7: // Price  

                if (price_count == 1) {

                    $("#ddlPrice").html("");
                    $('#ddlPrice').append(
                            $('<option></option>').val(price_value).html(price_name)
                        );

                }

                $('#ddlPrice').append(
                        $('<option></option>').val(data[i].Value).html(data[i].Name)
                    );

                price_count++;

                break;

        }

        // laad geselecteerd item
        $("#ddlTransaction").val(transaction_selected);
        $("#ddlHeadtype").val(headtype_selected);
        $("#ddlType").val(type_selected);
        $("#ddlCountry").val(country_selected);
        $("#ddlState").val(state_selected);
        $("#ddlCity").val(city_selected);
        $("#ddlPrice").val(price_selected);

        // Breedte van de dropdown
        if (dropdown_width == 100) {
            $("#ddlTransaction").css("width", "100%");
            $("#ddlHeadtype").css("width", "100%");
            $("#ddlType").css("width", "100%");
            $("#ddlCountry").css("width", "100%");
            $("#ddlState").css("width", "100%");
            $("#ddlCity").css("width", "100%");
            $("#ddlPrice").css("width", "100%");
        } else {
            $("#ddlTransaction").css("width", dropdown_width + "px");
            $("#ddlHeadtype").css("width", dropdown_width + "px");
            $("#ddlType").css("width", dropdown_width);
            $("#ddlCountry").css("width", dropdown_width + "px");
            $("#ddlState").css("width", dropdown_width + "px");
            $("#ddlCity").css("width", dropdown_width + "px");
            $("#ddlPrice").css("width", dropdown_width + "px");
        }

        // Snelzoek-URL
        maakSnelzoek_URL(transaction_selected, headtype_selected, type_selected, country_selected, state_selected, city_selected, price_selected);

    }
}

/* maken van de FilterURL */

function maakSnelzoek_URL(transaction_selected, headtype_selected, type_selected, country_selected, state_selected, city_selected, price_selected) {

    var sLink = pagina_url;  //+ pagina_querystring;
    
    sLink = sLink.replace("?transaction=" + transaction_querystring, "");
    sLink = sLink.replace("&transaction=" + transaction_querystring, "");
    sLink = sLink.replace("?headtype=" + headtype_querystring, "");
    sLink = sLink.replace("&headtype=" + headtype_querystring, "");
    sLink = sLink.replace("?type=" + type_querystring, "");
    sLink = sLink.replace("&type=" + type_querystring, "");
    sLink = sLink.replace("?country=" + country_querystring, "");
    sLink = sLink.replace("&country=" + country_querystring, "");
    sLink = sLink.replace("?state=" + state_querystring, "");
    sLink = sLink.replace("&state=" + state_querystring, "");
    sLink = sLink.replace("?city=" + city_querystring, "");
    sLink = sLink.replace("&city=" + city_querystring, "");
    sLink = sLink.replace("?price_class=" + priceclass_querystring, "");
    sLink = sLink.replace("&price_class=" + priceclass_querystring, "");

    //Transaction
    if((transaction_selected != "-1") && (transaction_selected != undefined)){
        
        if(sLink.indexOf("?") != -1){
            sLink += "&";
        }else{
            sLink += "?";
        }

        sLink += "transaction=" + transaction_selected;

    }

    //voeg transactie toe om actieve nav aan te duiden. => transactie in querystring zoekresult zetten
//    if (sLink.indexOf("?") != -1) {
//        sLink += "&transaction=" + transaction_querystring;
//    } else {
//        sLink += "?transaction=" + transaction_querystring;
//    } 

    //Headtype
    if ((headtype_selected != "-1") && (headtype_selected != undefined)) {

        if (sLink.indexOf("?") != -1) {
            sLink += "&";
        } else {
            sLink += "?";
        }

        sLink += "headtype=" + headtype_selected;

    }


    //Type
    if ((type_selected != "-1") && (type_selected != undefined)) {

        if (sLink.indexOf("?") != -1) {
            sLink += "&";
        } else {
            sLink += "?";
        }

        sLink += "type=" + type_selected;

    }

    //Country
    if ((country_selected != "-1") && (country_selected != undefined)) {

        if (sLink.indexOf("?") != -1) {
            sLink += "&";
        } else {
            sLink += "?";
        }

        sLink += "country=" + country_selected;

    }

    //State
    if ((state_selected != "-1") && (state_selected != undefined)) {

        if (sLink.indexOf("?") != -1) {
            sLink += "&";
        } else {
            sLink += "?";
        }

        sLink += "state=" + state_selected;

    }

    //City
    if ((city_selected != "-1") && (city_selected != undefined)) {

        if (sLink.indexOf("?") != -1) {
            sLink += "&";
        } else {
            sLink += "?";
        }

        sLink += "city=" + city_selected;

    }

    //Price Class
    if ((price_selected != "-1") && (price_selected != undefined)) {

        if (sLink.indexOf("?") != -1) {
            sLink += "&";
        } else {
            sLink += "?";
        }

        sLink += "price_class=" + price_selected;

    }


    $("#btnZoeken").attr("href", sLink);
}

/* Init Change Events */

function init_Filter_Transaction_Change() {

    $("#ddlTransaction").change(function () {

        load_Snelzoeker();

    });

}

function init_Filter_Headtype_Change() {

    $("#ddlHeadtype").change(function () {

        load_Snelzoeker();

    });

}

function init_Filter_Type_Change() {

    $("#ddlType").change(function () {

        load_Snelzoeker();

    });

}

function init_Filter_Country_Change() {

    $("#ddlCountry").change(function () {

        load_Snelzoeker();

    });

}

function init_Filter_State_Change() {

    $("#ddlState").change(function () {

        load_Snelzoeker();

    });

}

function init_Filter_City_Change() {

    $("#ddlCity").change(function () {

        load_Snelzoeker();

    });

}

function init_Filter_Price_Change() {

    $("#ddlPrice").change(function () {

        load_Snelzoeker();

    });

}


//function block_Snelzoeker() {

//    $('.zoek-filters').block({
//        message: $('.zoek-filter-busy'),
//        css: {
//            padding: 0,
//            margin: 0,

//            textAlign: 'center',
//            color: '#000',
//            border: 'none',
//            backgroundColor: '#f8f8f8',
//            cursor: 'wait'
//        },
//        overlayCSS: {
//            backgroundColor: '#f8f8f8',
//            opacity: 1
//        }
//    });


//}

//function unblock_Snelzoeker() {
//    $(".zoek-filters").unblock();
//    $.unblockUI();
//}
