$(document).ready(function() { /** 매매유형을 클릭할 때마다 바꿔주는 코드 **/ $(".btn-group > .btn").click(function(){ $(".btn-group > .btn").removeClass("active"); $(this).addClass("active"); }); /** 주소 검색 초기화 **/ get_sido("search_form",address_type); /** 지하철 검색 초기화 **/ get_subway_local("search_form"); /** 검색 탭 처리 **/ $("ul.nav-search li").click(function(e){ search_reset(); if (!$(this).hasClass("active")) { var tabNum = $(this).index(); var nthChild = tabNum+1; $("ul.nav-search li.active").removeClass("active"); $(this).addClass("active"); $("ul#tab li.active").removeClass("active"); $("ul#tab li:nth-child("+nthChild+")").addClass("active"); }; }); $("#geo_btn").click(function(){ if($.isNumeric($("#search").val())){ location.href="/installation/view/"+$("#search").val(); return false; } else{ $("#search").trigger("geocode"); } $("#search_form").submit(); }); }); /** * 검색시 매물 유형을 선택하는 기능이다. * 하나를 선택하면 모두 동일한 값으로 세팅한다. */ function set_type(val){ $(".type").val(val); $("#type").val(val); } /** * 검색 방식을 변경할 때 값을 초기화하는 함수 */ function search_reset(){ $("#type1, #type2, #type3").val($("#type").val()); $("#sido, #gugun, #subway_local, #hosun, #station, #search").val(""); $("#gugun").html(''); $("#dong").html(''); $("#hosun").html(''); $("#station").html(''); } function get_sido(form,type){ $.getJSON("/addressinstallation/get_sido/"+type+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { if( $("#sido_val").val()==val["sido"] ){ str = str + ""; selected = true; } else { str = str + ""; } }); $("#"+form).find("#sido").html(str); /** 값이 있으면 change event와는 별개로 get_gugun을 호출해 준다. **/ if(selected) get_gugun(form, type, $("#sido").val()); $("#"+form).find("#sido").change(function(){ get_gugun(form, type, this.value); }); }); } function get_gugun(form,type,sido){ $.getJSON("/addressinstallation/get_gugun/"+type+"/"+encodeURI(sido)+"/",function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { if( $("#gugun_val").val()==val["parent_id"] ){ str = str + ""; selected = true; } else { str = str + ""; } }); $("#"+form).find("#gugun").html(str); if(selected) get_dong(form, type, $("#gugun").val()); /** 초기값만 세팅하는 것이기 때문에 이것만 호출해 주면 된다. **/ $("#"+form).find("#gugun").change(function(){ $("#"+form).find("#search_type").val("parent_address"); $("#"+form).find("#search_value").val(this.value); $("#"+form).find("#lat").val(); $("#"+form).find("#lng").val(); get_dong(form, type, this.value); }); //refresh_lang(); }); } function get_dong(form,type,parent_id){ $.getJSON("/addressinstallation/get_dong/"+type+"/"+parent_id+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { if( $("#dong_val").val()==val["id"] ){ str = str + ""; selected = true; } else { str = str + ""; } }); $("#"+form).find("#dong").html(str); if(selected) get_address(form, $("#dong_val").val()); /** 초기값만 세팅하는 것이기 때문에 이것만 호출해 주면 된다. **/ $("#"+form).find("#dong").change(function(){ get_address(form,this.value); }); //refresh_lang(); }); } function get_address(form,id){ $("#danzi").val(""); $.getJSON("/addressinstallation/get/"+id+"/"+Math.round(new Date().getTime()),function(data){ $("#"+form).find("#lat").val(data["lat"]); $("#"+form).find("#lng").val(data["lng"]); $("#"+form).find("#search_type").val("address"); $("#"+form).find("#search_value").val(id); $("#search_form").trigger("submit"); }); } function get_danzi(form,id){ search_reset(); $.getJSON("/danzi/get_json/"+id+"/"+Math.round(new Date().getTime()),function(data){ $("#"+form).find("#lat").val(data["lat"]); $("#"+form).find("#lng").val(data["lng"]); $("#search_form").trigger("submit"); }); } function get_subway_local(form){ $.getJSON("/subwayinstallation/get_local/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { if( $("#subway_local_val").val()==val["local"] ){ str = str + ""; selected = true; } else { str = str + ""; } }); $("#"+form).find("#subway_local").html(str); if(selected) get_hosun(form, $("#subway_local_val").val()); /** 초기값만 세팅하는 것이기 때문에 이것만 호출해 주면 된다. **/ $("#"+form).find("#subway_local").change(function(){ get_hosun(form, this.value); }); }); } function get_hosun(form,local){ $.getJSON("/subwayinstallation/get_hosun/"+local+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { if( $("#hosun_val").val()==val["hosun_id"] ){ str = str + ""; selected = true; } else { str = str + ""; } }); $("#"+form).find("#hosun").html(str); if(selected) get_station(form, local, $("#hosun_val").val()); /** 초기값만 세팅하는 것이기 때문에 이것만 호출해 주면 된다. **/ $("#"+form).find("#hosun").change(function(){ get_station(form,local,this.value); }); //refresh_lang(); }); } function get_station(form,local,hosun){ $.getJSON("/subwayinstallation/get_station/"+hosun+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { if( $("#station_val").val()==val["id"] ){ str = str + ""; selected = true; } else { str = str + ""; } }); $("#"+form).find("#station").html(str); if(selected) get_subway(form, $("#station_val").val()); /** 초기값만 세팅하는 것이기 때문에 이것만 호출해 주면 된다. **/ $("#"+form).find("#station").change(function(){ get_subway(form,this.value); }); //refresh_lang(); }); } function get_subway(form,id){ $("#danzi").val(""); $.getJSON("/subwayinstallation/get/"+id+"/"+Math.round(new Date().getTime()),function(data){ $("#"+form).find("#lat").val(data["lat"]); $("#"+form).find("#lng").val(data["lng"]); $("#"+form).find("#search_type").val("subway"); $("#"+form).find("#search_value").val(id); $("#search_form").trigger("submit"); }); } function init_price(){ $(".price_range").hide(); if($("input[name='type']:checked").val()=="installation"){ $(".price_sell").show(); $(".installation_label").show(); $(".sell_label").hide(); } else if($("input[name='type']:checked").val()=="sell"){ $(".price_sell").show(); $(".sell_label").show(); $(".installation_label").hide(); } else if($("input[name='type']:checked").val()=="full_rent"){ $(".price_full").show(); } else if($("input[name='type']:checked").val()=="monthly_rent"){ $(".price_rent").show(); } } function init_search(type, category){ /** 거래 유형 초기화 **/ $(".type_label").removeClass("active"); var type_obj = $("input[name='type']").filter("[value='"+type+"']"); type_obj.prop('checked', true); type_obj.parent().addClass("active"); init_price(); //슬라이드 영역 보여주기 $(".slider").each(function(){ /*** 슬라이드 초기화 ***/ $(this).noUiSlider({ start: [ parseInt($(this).attr("data-start")), parseInt($(this).attr("data-end")) ], range: {'min':0,'max':parseInt($(this).attr("data-max"))}, step: parseInt($(this).attr("data-step")) }, true); /*** 슬라이드와 가격정보 연동 ***/ $(this).Link('lower').to($("#"+$(this).attr("data-type")+"_start"),null,wNumb({decimals: 0})); $(this).Link('upper').to($("#"+$(this).attr("data-type")+"_end"),null,wNumb({decimals: 0})); /*** 가격 레벨 초기갑 표시 ***/ var str = "" var unit = price_unit; /** 금액단위 **/ if($(this).attr("data-type")=="sell") unit = sell_unit; str += numberWithCommas($("#"+$(this).attr("data-type")+"_start").val()); str += unit; str += " - "; if($("#"+$(this).attr("data-type")+"_end").val() < $(this).attr("data-max")){ str += numberWithCommas($("#"+$(this).attr("data-type")+"_end").val()); str += unit; } else { str += "제한없음"; } $("#"+$(this).attr("data-type")+"_label").html(str); }); /*** 슬라이드 수정시 행동 ***/ $(".slider").on({ slide: function(){ var str = "" var unit = price_unit; /** 금액단위 **/ if($(this).attr("data-type")=="sell") unit = sell_unit; str += numberWithCommas($("#"+$(this).attr("data-type")+"_start").val()); str += unit; str += " - "; if(parseInt($("#"+$(this).attr("data-type")+"_end").val()) < parseInt($(this).attr("data-max"))){ str += numberWithCommas($("#"+$(this).attr("data-type")+"_end").val()); str += unit; } else { str += "제한없음"; } $("#"+$(this).attr("data-type")+"_label").html(str); }, change: function(){ if( $("#search_form").attr("action") != "/installation/set_search/main" ) $('#search_form').submit(); } }, true); /** 매물유형(category) 초기화 **/ var cat = category.split(","); $("input[name='category[]']").each(function(){ if( contains(cat, $(this).val()) ) { $(this).prop('checked',true); } }); $(".category_checkbox").iCheck({ checkboxClass: 'icheckbox_square-red', radioClass: 'iradio_square-red', increaseArea: '20%' // optional }); } /** * 배열에 값이 있는지 여부를 체크하는 함수 */ function contains(a, obj) { for (var i = 0; i < a.length; i++) { if (a[i] === obj) { return true; } } return false; } function numberWithCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }