﻿var old_buyrent = "";
function Prop_OnBuyRentChange() {
    var new_buyrent = $("input[name='buy-rent']:radio:checked").val();
    if (new_buyrent !== old_buyrent) {
        clean_select("select-suburb");

        var select_name = "select-city";
        clean_select(select_name);

        $.post(site_service_url, { sid: "prop_getcities", buyrent: new_buyrent }, function(data) {
            $.each(data.list, function() {
                $("select[name='" + select_name + "']").find("option").end().append("<option value='" + this.id + "'>" + this.name + "</option>").val("");
                if ($.jNice) {
                    $.jNice.SelectUpdate($("select[name='" + select_name + "']")[0]);
                }

            });


        }, "json");

        Prop_ChangePriceList();

        old_buyrent = new_buyrent;
    }

}

function Prop_ChangePriceList() {
    var new_buyrent = $("input[name='buy-rent']:radio:checked").val();
    var select_currency = $("select[name='select-currency']").val();

    var select_price_from = "price_from";
    if ($("#" + select_price_from).size() > 0) {

        clean_select(select_price_from);
        $.post(site_service_url, { sid: "prop_getpricelist", buyrent: new_buyrent, currency: select_currency, field: 'FROM' }, function(data) {
            $.each(data.list, function() {
                $("select[name='" + select_price_from + "']").find("option").end().append("<option value='" + this.id + "'>" + this.name + "</option>").val("");
                if ($.jNice) {
                    $.jNice.SelectUpdate($("select[name='" + select_price_from + "']")[0]);
                }

            });


        }, "json");

    }

    var select_price_to = "price_to";
    if ($("#" + select_price_to).size() > 0) {

        clean_select(select_price_to);
        $.post(site_service_url, { sid: "prop_getpricelist", buyrent: new_buyrent, currency: select_currency, field: 'TO' }, function(data) {
            $.each(data.list, function() {
                $("select[name='" + select_price_to + "']").find("option").end().append("<option value='" + this.id + "'>" + this.name + "</option>").val("");
                if ($.jNice) {
                    $.jNice.SelectUpdate($("select[name='" + select_price_to + "']")[0]);
                }

            });


        }, "json");

    }


}

function Prop_OnCurrencyChange(ele) {
    Prop_ChangePriceList();
}
function Prop_OnCityChange(ele) {

    var jEle = $(ele);
    var select_name = "select-suburb";

    clean_select(select_name);
    if (jEle.val() != "") {
        $.post(site_service_url, { sid: "prop_getsubbycity", cityid: jEle.val(), buyrent: $("input[name='buy-rent']:radio:checked").val() }, function(data) {
            $.each(data.list, function() {
                $("select[name='" + select_name + "']").find("option").end().append("<option value='" + this.id + "'>" + this.name + "</option>").val("");
                if ($.jNice) {
                    $.jNice.SelectUpdate($("select[name='" + select_name + "']")[0]);
                }

            });


        }, "json");



    }

}



function clean_select(select_name) {
    $("select[name='" + select_name + "']").find("option:not(:first)").remove();
    if ($.jNice) {
        $.jNice.SelectUpdate($("select[name='" + select_name + "']")[0]);
    }
}


function Prop_SubmitSearchForm(action_url, cared_keys, type) {

    if ($("select[name='select-city']").val() != "") {
        //nothing

    } else {
        alert(properysearch_tooltips_pleaseselectcityfirst);
        return false;
    }

    if ($("select[name='price_from']").size() > 0) {
        var price_from = $("select[name='price_from']").val();
        var price_to = $("select[name='price_to']").val();
        if (price_from === '' || price_to === '' || isNaN(Number(price_from)) || isNaN(Number(price_to))) {
        } else {
            if (Number(price_from) > Number(price_to)) {
                alert(propertysearch_errormsg_notvalidprices);
                return false;
            }
        }
    }
    var params = Prop_GetKeyValuesString(cared_keys);
    if (params.length > 0) {
        action_url += "?" + params;
    }

    //var city = $("select[name='select-city'] option:selected").text();
    //var suburb = $("select[name='select-suburb'] option:selected").text();
    //action_url = action_url + "&city=" + city + "&suburb=" + suburb;
    window.location = action_url;

    return false;
}

function Prop_GetKeyValuesString(cared_keys) {
    var keys = cared_keys.split(",");
    var value = "";
    var result = "";
    for (i = 0; i < keys.length; i++) {
        value = Prop_GetKeyValue(keys[i]);
        if (value.length > 0) {
            if (result.length > 0) result += "&";
            result += keys[i] + "=" + value;
        }
    }
    return result;

}

function Prop_GetKeyValue(key) {
    var result = "";
    var eles = $("form[name='formPropertySearch']").find("[name='" + key + "']");
    var ele;
    for (var i = 0; i < eles.length; i++) {
        ele = eles.eq(i);
        if (((ele.is("input[type='checkbox']") || ele.is("input[type='radio']")) && ele.is("input:checked")) || !(ele.is("input[type='checkbox']") || ele.is("input[type='radio']"))) {
            if (ele.val() != "") {
                if (result.length > 0) result += ",";
                result += eles.eq(i).val();
            }
        }
    }
    return result;
}

function Prop_SetRequestValues(cared_keyvalues) {
    var keyvalues = cared_keyvalues.split("&");

    for (i = 0; i < keyvalues.length; i++) {
        Prop_SetKeyValue(keyvalues[i]);

    }
    if (cared_keyvalues.indexOf('buy-rent=') < 0) {
        Prop_SetKeyValue('buy-rent=1');
    }
    if (cared_keyvalues.indexOf('searchtype=advanced') >= 0) {
        $(document).ready(function() { $(".sidetools .trigger").click(); });
    }

}

function Prop_SetRequestValues2(cared_keyvalues, for_sale) {
    var keyvalues = cared_keyvalues.split("&");

    for (i = 0; i < keyvalues.length; i++) {
        Prop_SetKeyValue(keyvalues[i]);
    }
    if (for_sale == "Sale") {
        Prop_SetKeyValue('buy-rent=1');
    }
    else if (for_sale == "Rent") {
        Prop_SetKeyValue('buy-rent=2');
    }
    else if (for_sale == "Invest") {
        Prop_SetKeyValue('buy-rent=3');
    }
    else {
        Prop_SetKeyValue('buy-rent=1');
    }
    /*if (cared_keyvalues.indexOf('buy-rent=') < 0) {
    Prop_SetKeyValue('buy-rent=1');
    }
    */
    if (cared_keyvalues.indexOf('searchtype=advanced') >= 0) {
        $(document).ready(function() { $(".sidetools .trigger").click(); });
    }
}

function Prop_SetKeyValue(keyvalue) {
    var key = "";
    var value = "";
    if (keyvalue.length > 0) {            
        var pos = keyvalue.indexOf("=");
        if (pos >= 0 && (pos < (keyvalue.length - 1))) {
            key = keyvalue.substring(0, pos);
            value = keyvalue.substring(pos + 1);
            if (key == "searchtype" && value == "basic") {
                //don't set value
            } else {
                var eles = $("form[name='formPropertySearch']").find("[name='" + key + "']");          
                var ele;
                for (var i = 0; i < eles.length; i++) {
                    ele = eles.eq(i);
                    if (!(ele.is("input[type='checkbox']")) && !(ele.is("input[type='radio']"))) {
                        ele.val(value);
                        if ($.jNice) {
                            $.jNice.SelectUpdate(ele[0]);
                        }
                    }
                    else if(ele.is("input[type='checkbox']")){

                        if (("," + value + ",").indexOf("," + ele.val() + ",") >= 0) {
                            ele.attr('checked', true);
                            ele.parent().find('.jNiceCheckbox').addClass('jNiceChecked');

                        } else {
                            ele.attr('checked', false);
                            ele.parent().find('.jNiceCheckbox').removeClass('jNiceChecked');
                        }
                    } else if (ele.is("input[type='radio']")) {
                    
                        if (("," + value + ",").indexOf("," + ele.val() + ",") >= 0) {
                            ele.attr('checked', true);
                            ele.parent().find('.jNiceRadio').addClass('jNiceChecked');

                        } else {
                            ele.attr('checked', false);
                            ele.parent().find('.jNiceRadio').removeClass('jNiceChecked');
                        }
                    }

                }
            }
        }

    }

}
function Prop_ChangePageSize(ele) {

    var pagesize_val = $(ele).val();
    $.post(
            site_service_url,
            { sid: "prop_setpagesize", pagesize: pagesize_val },
            function(responseText) {

                if ($(responseText).find("result").html() != "") {
                    window.location.reload();
                } else {
                    alert("can't change pagesize");
                }
            }
    );
}

function Prop_ChangeSortType(ele) {
    var sort_val = $(ele).val();
    $.post(
            site_service_url,
            { sid: "prop_setsorttype", sorttype: sort_val },
            function(responseText) {

                if ($(responseText).find("result").html() != "") {
                    window.location.reload();
                } else {
                    alert("can't change sort type");
                }
            }
    );

}


function Prop_ClearSearchCondition() {
    var empty_condition = "select-city= &select-suburb= &select-currency= &price_from= &price_to= &select-bedrooms= " +
                    "&select-bathrooms= &select-addrooms= &select-parking= &property_type= &property_size= &land_area= &location_type= &property_condition= &fibr= &nras= &rental= ";
    Prop_SetRequestValues(empty_condition);
    var eles = $.find("[name='buy-rent']");
    if (eles.length == 2) {
        $(eles[0]).siblings().addClass("jNiceChecked");
        $(eles[1]).siblings().removeClass("jNiceChecked");
    }
}
