/************************************************************************************************* * 검색 스크립트 * category_sub_change : 매물종류에서 서브종류가 변경되었을 때 동작 * search_reset : 검색 초기화(클릭시 선택된 검색 조건이 모두 초기화된다.) * end_price_trim : 클릭으로 가격검색을 할 때 최대값은 선택된 최소값보다 큰 선택사항만 남도록 한다. * send_form : 검색을 실행한다. (만약 중복으로 요청이 왔을 때 처리절차도 포함되어 있다.) * theme_display : 테마검색 토글기능 * set_theme : 테마검색시 테마선택되면 검색 실행하도록 한다. (근데 쓰이는 곳이?) * subway_line_display : 호선별 검색 토글 * set_type : 매물유형 선택시 실행(근데 쓰이는 곳이?) * search_tab_reset : 검색 방식을 변경할 대 초기화하는 함수 * get_sido : 시도가져오기 * get_gugun : 구군가져오기 * get_dong : 동가져오기 * get_address : 주소아이디로 가져오기 * left_loading : 좌측 로딩 보여주기 * get_subway_local : 지하철 지역 가져오기 * get_hosun : 지하철 호선 가져오기 * get_station : 지하철 역 가져오기 * get_subway : 지하철 아이디로 가져오기 * init_price : 가격 슬라이드 초기화하기 * init_search : 검색 초기화하기(처음에) * contains : 배열에 값이 있는지 체크하는 함수 * numberWithCommas : 숫자에 콤마 붙여주기 * get_gugun_modal : 구군가져오기(modal) * get_dong_modal : 동가져오기(modal) * area_search : 해당 지역으로 좌표이동(modal) * get_hosun_modal : 지하철 호선 가져오기(modal) * get_station_modal : 지하철 역 가져오기(modal) * subway_search : 해당 지하철역으로 좌표이동(modal) * region_select : 사전지역으로 검색하기 * not_submit : 유저페이지 매물관리에서 ajax로 submit을 시키지 않기 위함 * trigger : 유저페이지 매물관리에서 강제로 trigger 시키기 위함 *************************************************************************************************/ var sell_unit = "억원"; var price_unit = "만원"; var address_type="front"; /** 공개매물 등록된 주소 가져오도록 **/ var search_form ; var not_submit = false; var trigger = false; $(document).ready(function() { $(window).bind("pageshow", function() { //update hidden input field $("#search").val(""); }); search_form = $("#search_form"); $('button').tooltip(); /* 버튼 툴팁 보여주기 */ $.support.cors = true; /* ie9 등에서 한글도메인일 경우에 넣어줘야만 ajaxform이 동작한다. */ /** 매매유형을 클릭할 때마다 바꿔주는 코드 (사용안되는거같아서 지움) **/ /* $(".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_tab_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"); }; }); if($("#search").length > 0){ $("#search").autocomplete({ //자동완성 첫줄 자동선택 옵션 추가 : 사용시 0, 미사용시 1 selectFirst: true, autoFill: false, autoFocus: true, focus: function(event,ui){ return false; }, delay: 0, scrollHeight:40, minLength:2, select: function(a,b){ $("#search_type").val(b.item.type); $("#search_value").val(b.item.id); $("#lat").val(b.item.lat); $("#lng").val(b.item.lng); //페이징 초기화 if($("#next_page").length > 0) $("#next_page").val("0"); //send_form(); $("#search_form").trigger("submit"); //지도에서는 통합검색을 완료 하고 나면 선택이 안되는 문제가 있다. //지도에서는 지도가 움직이는 속도가 있으므로 1초 딜레이를 준 뒤 클릭시킨다 if(""=="1"){ if(b.item.type=="address"){ setTimeout(function () { $("#round"+b.item.id).trigger("click"); }, 1000); } else if(b.item.type=="subway"){ setTimeout(function () { $("#subway_round"+b.item.id).trigger("click"); }, 1000); } } a.stopPropagation(); return false; }, source: function(request, response){ totalSearch(37.50383001803,127.044827847962, response); }, }).data("ui-autocomplete")._renderItem = autoCompleteRenderSearch; } $("#search").keypress(function(event){ if(event.which==13){ if($("#next_page").length > 0) $("#next_page").val("0"); $("#keyword_front").val($("#search").val()); if($("#keyword_front").val()){ $("#search_type").val(""); $("#search_value").val(""); $("#lat").val(""); $("#lng").val(""); $("#zoom").val(""); } } }); $("#go_keyword").click(function(e){ if($("#next_page").length > 0) $("#next_page").val("0"); $("#keyword_front").val($("#search").val()); if($("#keyword_front").val()){ $("#search_type").val(""); $("#search_value").val(""); $("#lat").val(""); $("#lng").val(""); $("#zoom").val(""); } }); $("#search_form").on("submit", function(e) { if($.isNumeric($("#search").val())){ $.ajax({ url: "/product/product_check/"+$("#search").val(), dataType: "json", success: function(data) { if(data){ $("#keyword_front").val(""); location.href="/product/view/"+$("#search").val(); } else{ msg("error" ,"매물 번호 자료가 없습니다."); } } }); return false; } }); /* 클릭으로 가격검색 하는 기능 추가 */ var search_priceLabelObj; search_form.find(".price-label").focus(function (event) { end_price_trim(); search_priceLabelObj=$(this); search_form.find(".price-range").addClass("hide"); search_form.find("#"+$(this).data("dropdownId")).removeClass("hide"); }); /* 가격선택하면 창이 닫혀버리는 것을 막는다. */ search_form.find(".band-wrapper .dropdown-menu").click(function (event) { event.stopPropagation(); }); search_form.find(".right_search_wrap .dropdown-menu").click(function (event) { event.stopPropagation(); }); search_form.find(".button-section .dropdown-menu").click(function (event) { event.stopPropagation(); }); //버튼 클릭하면 버튼과 함께 있는 첫 번째 값에 포커스가 가도록 한다. var btn; search_form.find(".btn-price").click(function(event){ btn = $(this); setTimeout(function(){ btn.parent().find(".price-label").first().focus();},0); }); search_form.find(".price-range li").click(function(event){ search_priceLabelObj.val($(this).attr("data-value")); //focus되어 있는 곳에 선택된 값을 입력해 준다. var curElmIndex=search_form.find( ".price-label" ).index( search_priceLabelObj ); end_price_trim(); if(curElmIndex % 2 == 0){ search_form.find(".price-range li").removeClass("hide"); search_form.find( ".price-label" ).eq(curElmIndex+1).focus(); }else{ btn.dropdown('toggle'); //최근 눌렸던 버튼을 토글한다. if($(this).attr("notsubmit")==undefined){ send_form(); } } }); search_form.find('.price-label').keypress(function(event){ if(event.which==13){ btn.dropdown('toggle'); //최근 눌렸던 버튼을 토글한다. //search_form.find('.price_select').removeClass('open'); if($(this).attr("notsubmit")==undefined){ send_form(); } } }); }); /** * 매물 종류에서 서브 종류가 변경되었을 때 동작 */ var category_sub_change = function(){ $("input[name='category[]']").on('ifChanged', function(){ if($(this).prop("checked")){ $(".category_sub_"+$(this).val()).slideDown("slow"); } else{ $(".category_sub_"+$(this).val()).attr("checked",false); $(".category_sub_"+$(this).val()).iCheck('uncheck'); $(".category_sub_"+$(this).val()).iCheck('update'); $(".category_sub_"+$(this).val()).slideUp("slow"); } }); $("input[name='category[]']").each(function(){ if($(this).prop("checked")){ $(".category_sub_"+$(this).val()).show(); } else{ $(".category_sub_"+$(this).val()).attr("checked",false); $(".category_sub_"+$(this).val()).iCheck('uncheck'); $(".category_sub_"+$(this).val()).iCheck('update'); } }); } /** * 검색 결과로 가져온 결과를 보여주기위한 함수. 2016년 5월 6일 * 주소와 지하철 */ function autoCompleteRenderSearch(ul, item) { if(item.type=="address"){ return $("
").data("item.autocomplete", item).append(item.title).appendTo(ul); } else { return $("").data("item.autocomplete", item).append(item.title+'('+item.hosun+'호선)').appendTo(ul); } } /** * 검색 결과를 반환 */ function totalSearch(lat,lng, response){ //숫자일 경우에는 매물검색으로 인식해서 해당 매물번호로 이동되므로 아무 것도 하지 않는다. if($.isNumeric($("#search").val())){ return false; } else { $.ajax({ url: "/search/total/"+lat+"/"+lng, type: "POST", data: { search: $("#search").val() }, dataType: "json", success: function(data) { if(data!=""){ response( $.map( data, function( item ) { return { id: item.id, title: item.title, type: item.type, hosun: item.hosun, lat: item.lat, lng: item.lng }; })); } } }); } } /** * 검색을 하다가 초기화를 누르면 모든 검색 내용이 초기화된다. */ function search_reset(){ right_close(); loading_delay(true); $("#search_form").find("select").not(".sorting_select").each(function() { $(this).val(""); }); $("#search_form").find("input").each(function() { $(this).prop("selected",false); $(this).prop("checked",false); }); $("input[name='category[]']").each(function(){ $(this).prop("checked",false); }); $("input[name='sell_start']").val("0"); $("input[name='sell_end']").val("1000"); $("input[name='lease_start']").val("0"); $("input[name='lease_end']").val("10"); $("input[name='full_start']").val("0"); $("input[name='full_end']").val("200000"); $("input[name='month_deposit_start']").val("0"); $("input[name='month_deposit_end']").val("5000"); $("input[name='month_start']").val("0"); $("input[name='month_end']").val("50000"); $("input[name='premium_start']").val("0"); $("input[name='premium_end']").val("10000"); $("input[name='real_area_start']").val("0"); $("input[name='real_area_end']").val("10000"); $("input[name='law_area_start']").val("0"); $("input[name='law_area_end']").val("10000"); $("input[name='land_area_start']").val("0"); $("input[name='land_area_end']").val("10000"); $("input[name='bld_area_start']").val("0"); $("input[name='bld_area_end']").val("10000"); $("#sell_label").html("0"+sell_unit+" - 제한없음"); $("#sell_range").val([0, 1000]); $("#lease_label").html("0"+sell_unit+" - 제한없음"); $("#lease_range").val([0, 10]); $("#full_label").html("0"+price_unit+" - 제한없음"); $("#full_range").val([0, 200000]); $("#month_deposit_label").html("0"+price_unit+" - 제한없음"); $("#month_deposit_range").val([0, 5000]); $("#month_label").html("0"+price_unit+" - 제한없음"); $("#month_range").val([0, 50000]); $('#bun_min').html("0"); $('#bun_max').html("0"); $('#meme_min').html("0"); $('#meme_max').html("0"); $('#lease_min').html("0"); $('#lease_max').html("0"); $('#junse_min').html("0"); $('#junse_max').html("0"); $('#walse1_min').html("0"); $('#walse1_max').html("0"); $('#walse2_min').html("0"); $('#walse2_max').html("0"); $('#realarea_min').html("0"); $('#realarea_max').html("0"); $('#lawarea_min').html("0"); $('#lawarea_max').html("0"); $('#landarea_min').html("0"); $('#landarea_max').html("0"); $("#bedcnt").val(""); $("#bathcnt").val(""); if($("#search_ground_use").length > 0){ $("#ground_use").html(""); $("#search_ground_use").next().find("li").each(function(){ $(this).removeClass("active"); }); } if($("#search_ground_aim").length > 0){ $("#ground_aim").html(""); $("#search_ground_use").next().find("li").each(function(){ $(this).removeClass("active"); }); } $("#recommend").val(""); $("#real_area_label").html("0㎡(0평) - 제한없음"); $("#real_area_range").val([0, 10000]); $("#law_area_label").html("0㎡(0평) - 제한없음"); $("#law_area_range").val([0, 10000]); $("#land_area_label").html("0㎡(0평) - 제한없음"); $("#land_area_range").val([0, 10000]); $("#bld_area_label").html("0㎡(0평) - 제한없음"); $("#bld_area_range").val([0, 10000]); $(".type_label").removeClass("active"); $(".type_label").eq(0).addClass("active"); $("#search_type, #search_value, #search, #keyword_front").val(""); $('#lat').val('37.5108533454971'); $('#lng').val('127.0436408156958'); $('#zoom').val('8'); $("#sido_val, #gugun_val, #dong_val, #danzi_val").val(""); $("#subway_local_val, #hosun_val, #station_val").val(""); $("#address_id").val(""); $('input').iCheck('uncheck'); $('input').iCheck('update'); calling = 1; init_price(); init_area(); setTimeout(function () { loading_delay(false); calling = 0; }, 400); $("#reset").val(1); send_form(); $("#reset").val(0); init_position(); } /** * 새로운 가격검색(클릭으로 검색)에서 최소값을 선택하였을 때 최대값은 최소값보다 큰 값들을 선택하기 위한 함수 */ function end_price_trim(){ if(search_form.find("input[name='sell_start']").val()!=""){ search_form.find("#sell-price-max li").each(function(){ if(eval(search_form.find("input[name='sell_start']").val()) >= eval($(this).attr("data-value"))){ $(this).addClass("hide"); } }); } if(search_form.find("input[name='lease_start']").val()!=""){ search_form.find("#lease-price-max li").each(function(){ if(eval(search_form.find("input[name='lease_start']").val()) >= eval($(this).attr("data-value"))){ $(this).addClass("hide"); } }); } if(search_form.find("input[name='full_start']").val()!=""){ search_form.find("#fullrent-price-max li").each(function(){ if(eval(search_form.find("input[name='full_start']").val()) >= eval($(this).attr("data-value"))){ $(this).addClass("hide"); } }); } if(search_form.find("input[name='month_deposit_start']").val()!=""){ search_form.find("#month_deposit-price-max li").each(function(){ if(eval(search_form.find("input[name='month_deposit_start']").val()) >= eval($(this).attr("data-value"))){ $(this).addClass("hide"); } }); } if(search_form.find("input[name='month_start']").val()!=""){ search_form.find("#month-price-max li").each(function(){ if(eval(search_form.find("input[name='month_start']").val()) >= eval($(this).attr("data-value"))){ $(this).hide(); } }); } if(search_form.find("input[name='premium_start']").val()!=""){ search_form.find("#premium-price-max li").each(function(){ if(eval(search_form.find("input[name='premium_start']").val()) >= eval($(this).attr("data-value"))){ $(this).hide(); } }); } if(search_form.find("input[name='real_area_start']").val()!=""){ search_form.find("#realarea-price-max li").each(function(){ if(eval(search_form.find("input[name='real_area_start']").val()) >= eval($(this).attr("data-value"))){ $(this).hide(); } else { $(this).show(); } $('#realarea-price-max').children(':last').show(); }); } if(search_form.find("input[name='law_area_start']").val()!=""){ search_form.find("#lawarea-price-max li").each(function(){ if(eval(search_form.find("input[name='law_area_start']").val()) >= eval($(this).attr("data-value"))){ $(this).hide(); } else { $(this).show(); } $('#lawarea-price-max').children(':last').show(); }); } if(search_form.find("input[name='land_area_start']").val()!=""){ search_form.find("#landarea-price-max li").each(function(){ if(eval(search_form.find("input[name='land_area_start']").val()) >= eval($(this).attr("data-value"))){ $(this).hide(); } else { $(this).show(); } $('#landarea-price-max').children(':last').show(); }); } } var send_form_flag=0; function send_form(){ if(trigger){ $("#search_form").trigger("submit"); } else { if(!not_submit && send_form_flag==0){ send_form_flag=1; setTimeout(function () { $("#next_page").val("0"); /*** 검색 조건이 바뀌면 다시 페이지가 0이 되면서 시작되어야 한다. more가 되면 submit이 아닌 success 된 이후에 ajax만 동작하면 된다. ***/ $("#search_form").trigger("submit"); send_form_flag=0; }, 100); } } } function theme_display(){ var theme_show = function(){ $("#theme_fa").removeClass("fa-chevron-down").addClass("fa-chevron-up"); $(".theme_li").slideDown("slow"); } var theme_hide = function(){ $("#theme_fa").removeClass("fa-chevron-up").addClass("fa-chevron-down"); $(".theme_li").slideUp("slow"); } if($(".theme_li").css("display") != "none") theme_hide(); else theme_show(); } function bed_display(){ var bed_show = function(){ $("#bed_fa").removeClass("fa-chevron-down").addClass("fa-chevron-up"); $(".bed_li").slideDown("slow"); } var bed_hide = function(){ $("#bed_fa").removeClass("fa-chevron-up").addClass("fa-chevron-down"); $(".bed_li").slideUp("slow"); } if($(".bed_li").css("display") != "none") bed_hide(); else bed_show(); } function bath_display(){ var bath_show = function(){ $("#bath_fa").removeClass("fa-chevron-down").addClass("fa-chevron-up"); $(".bath_li").slideDown("slow"); } var bath_hide = function(){ $("#bath_fa").removeClass("fa-chevron-up").addClass("fa-chevron-down"); $(".bath_li").slideUp("slow"); } if($(".bath_li").css("display") != "none") bath_hide(); else bath_show(); } function set_theme(id){ $("#theme").val(id); send_form(); } /** * 지하철 호선별 검색영억 토글 */ function subway_line_display(){ var subway_line_show = function(){ $("#subway_line_fa").removeClass("fa-chevron-down").addClass("fa-chevron-up"); $(".subway_line_li").slideDown("slow"); } var subway_line_hide = function(){ $("#subway_line_fa").removeClass("fa-chevron-up").addClass("fa-chevron-down"); $(".subway_line_li").slideUp("slow"); } if($(".subway_line_li").css("display") != "none") subway_line_hide(); else subway_line_show(); } /** * 검색시 매물 유형을 선택하는 기능이다. * 하나를 선택하면 모두 동일한 값으로 세팅한다. */ function set_type(val){ $(".type").val(val); $("#type").val(val); } /** * 검색 방식을 변경할 때 값을 초기화하는 함수 */ function search_tab_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("/address/get_sido/"+type+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { var sido_label; if(typeof val["sido_label"] !== 'undefined') { sido_label = val["sido_label"]; } else { sido_label = val["sido"]; } 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(){ $.getJSON("/address/get_sido_one/"+encodeURI(this.value)+"/"+Math.round(new Date().getTime()),function(data){ $("#"+form).find("#search_type").val("sido_address"); $("#"+form).find("#search_value").val(data["sido"]); $("#"+form).find("#lat").val(data["lat"]); $("#"+form).find("#lng").val(data["lng"]); $("#"+form).find("#sido_val").val(data["sido"]); }); if($("#sido_submit").length > 0){ if($("#sido_submit").val()){ send_form(); } } get_gugun(form, type, this.value); }); }); } function get_gugun(form,type,sido){ $.getJSON("/address/get_gugun/"+type+"/"+encodeURI(sido)+"/",function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { var gugun_label; if(typeof val["gugun_label"] !== 'undefined') { gugun_label = val["gugun_label"]; } else { gugun_label = val["gugun"]; } if( $("#gugun_val").val()==val["parent_id"] ){ str = str + ""; selected = true; } else { str = str + ""; } }); $("#"+form).find("#gugun").html(str); if(selected){ /*관리자에서 구군 초기화 되지 않기 위하여 추가했다.*/ $.getJSON("/address/get_parent/"+$("#"+form).find("#gugun").val()+"/"+Math.round(new Date().getTime()),function(data){ $("#"+form).find("#search_type").val("parent_address"); $("#"+form).find("#search_value").val(data["id"]); $("#"+form).find("#lat").val(data["lat"]); $("#"+form).find("#lng").val(data["lng"]); }); get_dong(form, type, $("#gugun").val()); /** 초기값만 세팅하는 것이기 때문에 이것만 호출해 주면 된다. **/ } $("#"+form).find("#gugun").change(function(){ $.getJSON("/address/get_parent/"+this.value+"/"+Math.round(new Date().getTime()),function(data){ $("#"+form).find("#search_type").val("parent_address"); $("#"+form).find("#search_value").val(data["id"]); $("#"+form).find("#lat").val(data["lat"]); $("#"+form).find("#lng").val(data["lng"]); if($("#gugun_submit").length > 0){ if($("#gugun_submit").val()){ if($("#next_page").length > 0) $("#next_page").val("0"); } } }); get_dong(form, type, this.value); }); //refresh_lang(); }); } function get_dong(form,type,parent_id){ if(type=="admin") send_form(); $.getJSON("/address/get_dong/"+type+"/"+parent_id+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { var dong_label; if(typeof val["dong_label"] !== 'undefined') { dong_label = val["dong_label"]; } else { dong_label = val["dong"]; } 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()); /** 초기값만 세팅하는 것이기 때문에 이것만 호출해 주면 된다. **/ if(selected) get_danzi(form, type, $("#dong_val").val()); $("#"+form).find("#dong").change(function(){ $("#next_page").val("0"); get_address(form,this.value); get_danzi(form, type, this.value); }); //refresh_lang(); }); } function get_danzi(form,type, id){ if(type=="admin") send_form(); $.getJSON("/danzi/get_danzi/"+id+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; if(data!=""){ $.each(data, function(key, val) { if( $("#danzi_val").val()==val["id"] ){ str = str + ""; selected = true; } else { str = str + ""; } }); } else{ str = str + ""; } $("#danzi").html(str); if(selected) get_address_danzi(form, $("#danzi_val").val()); $("#"+form).find("#danzi").change(function(){ $("#next_page").val("0"); get_address_danzi(form, this.value); }); }); } function get_address(form,id){ if(id){ $.getJSON("/address/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); $("#"+form).find("#zoom").val(4); send_form(); }); } } function get_address_danzi(form,id){ if(id){ $.getJSON("/danzi/get_json/"+id+"/"+Math.round(new Date().getTime()),function(data){ $("#"+form).find("#search_type").val("danzi"); $("#"+form).find("#search_value").val(id); send_form(); }); } } function left_loading(){ calling = 1; loading_delay(true); setTimeout(function () { loading_delay(false); calling = 0; }, 400); init_price(); init_area(); $("#next_page").val("0"); send_form(); } function get_subway_local(form){ $.getJSON("/subway/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("/subway/get_hosun/"+local+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { var hosun_label; if(typeof val["hosun_label"] !== 'undefined') { hosun_label = val["hosun_label"]; } else { hosun_label = val["hosun"]; } 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("/subway/get_station/"+hosun+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; var selected = false; $.each(data, function(key, val) { var name_label; if(typeof val["name_label"] !== 'undefined') { name_label = val["name_label"]; } else { name_label = val["name"]; } 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(){ $("#next_page").val("0"); get_subway(form,this.value); }); //refresh_lang(); }); } function get_subway(form,id){ $.getJSON("/subway/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); $("#"+form).find("#zoom").val(4); send_form(); }); } function init_price(){ search_form.find(".price_range").hide(); $("#lease_price").hide(); var installation = "1"; if(search_form.find("input[name='type']:checked").val()=="installation" || installation=="2"){ $(".price_title").hide(); search_form.find(".price_sell").show(); search_form.find(".price_lease").show(); search_form.find(".installation_label").show(); search_form.find(".sell_label").hide(); $(".price_label").first().text("분양가 "); $("#lease_price").show(); } else if(search_form.find("input[name='type']:checked").val()=="sell"){ $(".price_title").hide(); search_form.find(".price_sell").show(); search_form.find(".price_lease").hide(); search_form.find(".sell_label").show(); search_form.find(".installation_label").hide(); $(".price_label").first().text("매매가"); } else if(search_form.find("input[name='type']:checked").val()=="full_rent"){ $(".price_title").hide(); search_form.find(".price_full").show(); } else if(search_form.find("input[name='type']:checked").val()=="monthly_rent"){ $(".price_title").hide(); search_form.find(".price_rent").show(); } else { $(".price_title").show(); } if(search_form.find("select[name='type']").val()=="installation" || installation=="2"){ $(".price_title").hide(); search_form.find(".price_sell").css('display', 'inline-block'); search_form.find(".installation_label").css('display', 'inline-block'); search_form.find(".sell_label").hide(); $(".price_label").first().text("분양가 "); $("#lease_price").show(); } else if(search_form.find("select[name='type']").val()=="sell"){ $(".price_title").hide(); search_form.find(".price_sell").css('display', 'inline-block'); search_form.find(".sell_label").css('display', 'inline-block'); search_form.find(".installation_label").hide(); $(".price_label").first().text("매매가"); } else if(search_form.find("select[name='type']").val()=="full_rent"){ $(".price_title").hide(); search_form.find(".price_full").css('display', 'inline-block'); } else if(search_form.find("select[name='type']").val()=="monthly_rent"){ $(".price_title").hide(); search_form.find('.price_rent').css('display', 'inline-block'); } } function init_search(type, category, category_sub){ if(type=="") type = ""; /** 거래 유형 초기화 **/ $(".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; if($(this).attr("data-type")=="real_area" || $(this).attr("data-type")=="law_area" || $(this).attr("data-type")=="land_area" || $(this).attr("data-type")=="bld_area"){ unit = "㎡"+"("+Math.floor(parseFloat($("#"+$(this).attr("data-type")+"_end").val() / 3.305785))+"평)"; } str += numberWithCommas($("#"+$(this).attr("data-type")+"_start").val()); str += unit; str += " - "; if(parseInt($("#"+$(this).attr("data-type")+"_end").val()) < $(this).attr("data-max")){ str += numberWithCommas($("#"+$(this).attr("data-type")+"_end").val()); if($(this).attr("data-type")=="real_area" || $(this).attr("data-type")=="law_area" || $(this).attr("data-type")=="land_area" || $(this).attr("data-type")=="bld_area"){ unit = "㎡"+"("+Math.floor(parseFloat($("#"+$(this).attr("data-type")+"_end").val() / 3.305785))+"평)"; } 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")=="real_area" || $(this).attr("data-type")=="law_area" || $(this).attr("data-type")=="land_area" || $(this).attr("data-type")=="bld_area"){ unit = "㎡"+"("+Math.floor(parseFloat($("#"+$(this).attr("data-type")+"_end").val() / 3.305785))+"평)"; } if($(this).attr("data-type")=="sell") unit = sell_unit; if($(this).attr("data-type")=="land_area") 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()); if($(this).attr("data-type")=="real_area" || $(this).attr("data-type")=="law_area" || $(this).attr("data-type")=="land_area" || $(this).attr("data-type")=="bld_area"){ unit = "㎡"+"("+Math.floor(parseFloat($("#"+$(this).attr("data-type")+"_end").val() / 3.305785))+"평)"; } str += unit; } else { str += "제한없음"; } $("#"+$(this).attr("data-type")+"_label").html(str); }, change: function(){ if( $("#search_form").attr("action") != "/search/set_search/main" ) send_form(); } }, true); /** 매물유형(category) 초기화 **/ var cat = category.split(","); $("input[name='category[]']").each(function(){ if( contains(cat, $(this).val()) ) { $(this).prop('checked',true); } }); if(category_sub!=null){ var cat = category_sub.split(","); $("input[name='category_sub[]']").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, ","); } function get_gugun_modal(obj,sido){ $("#sido_label").addClass("active"); $("#label_text").text("구군을 선택해 주세요"); $("#sido_section > ul > li > div> button").removeClass("active"); $("#gugun_label").removeClass("active"); $("#dong_label").removeClass("active"); $(obj).addClass("active"); $("#sido").val($(obj).text()); $("#dong_section > ul > li > div").html(""); var type_check = "front"; $.getJSON("/address/get_gugun/"+type_check+"/"+encodeURI(sido)+"/",function(data){ var str = ""; $.each(data, function(key, val) { str = str + ""; }); $("#gugun_section > ul > li > div").html(str); }); } function get_dong_modal(obj,parent_id){ $("#gugun_label").addClass("active"); $("#label_text").text("읍면동을 선택하세요"); $("#gugun_section > ul > li > div > button").removeClass("active"); $("#dong_label").removeClass("active"); $(obj).addClass("active"); $("#gugun").val($(obj).text()); var type_check = "front"; $.getJSON("/address/get_dong/"+type_check+"/"+parent_id+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; $.each(data, function(key, val) { str = str + ""; }); $("#dong_section > ul > li > div").html(str); }); } function area_search(obj,id,lat,lng){ $("#search_type").val("address"); $("#search_value").val(id); $("#lat").val(lat); $("#lng").val(lng); $("#zoom").val(4); $("#dong_label").addClass("active"); $("#dong_section > ul > li > div > button").removeClass("active"); $(obj).addClass("active"); send_form(); $("#address_modal").modal("hide"); } function get_hosun_modal(obj,local){ $("#local_label").addClass("active"); $("#label_text").text("호선을 선택하세요"); $("#local_section > ul > li > div > button").removeClass("active"); $("#hosun_label").removeClass("active"); $(obj).addClass("active"); $("#station_section > ul > li > div").html(""); $.getJSON("/subway/get_hosun/"+local+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; $.each(data, function(key, val) { var hosun = ($.isNumeric(val["hosun"])) ? val["hosun"]+"호선" : val["hosun"]; str = str + ""; }); $("#hosun_section > ul > li > div").html(str); }); } function get_station_modal(obj,hosun_id){ $("#hosun_label").addClass("active"); $("#label_text").text("역을 선택하세요"); $("#hosun_section > ul > li > div > button").removeClass("active"); $("#station_label").removeClass("active"); $(obj).addClass("active"); $.getJSON("/subway/get_station/"+hosun_id+"/"+Math.round(new Date().getTime()),function(data){ var str = ""; $.each(data, function(key, val) { str = str + ""; }); $("#station_section > ul > li > div").html(str); }); } function subway_search(obj,id,lat,lng,subway_local,hosun){ $("#search_type").val("subway"); $("#search_value").val(id); $("#lat").val(lat); $("#lng").val(lng); $("#subway_local_val").val(subway_local); $("#hosun_val").val(hosun); $("#station_val").val(id); $("#zoom").val(4); $("#station_label").addClass("active"); $("#station_section > ul > li > div > button").removeClass("active"); $(obj).addClass("active"); send_form(); $("#subway_modal").modal("hide"); } function region_select(id,no_move){ if(id){ $.getJSON("/region/get_json/"+id+"/"+Math.round(new Date().getTime()),function(data){ if(data["address_id"]=="0"){ $("#search_type").val("parent_address"); $("#search_value").val(data["parent_id"]); $("#lat").val(data["gugun_lat"]); $("#lng").val(data["gugun_lng"]); } else{ $("#search_type").val("address"); $("#search_value").val(data["address_id"]); $("#lat").val(data["dong_lat"]); $("#lng").val(data["dong_lng"]); } $('#current_position').html('현재 설정위치는 '+data["name"]+' 입니다.'); if(no_move!=1){ send_form(); } }); } } /** * 면적검색 초기화 하기 */ function init_area_search(part){ /** 거래 유형 초기화 **/ var type_obj = $("input[name='part']").filter("[value='"+part+"']"); type_obj.prop('checked', true); type_obj.parent().addClass("active"); init_area(); //슬라이드 영역 보여주기 $(".slider_area").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})); }); } function init_area(){ /*거래범위가 변경 될 경우 전체(건물전체)에서만 보이는 ㎡은 초기화 한다*/ $("input[name='land_area_start']").val("0"); $("input[name='land_area_end']").val("10000"); $("input[name='bld_area_start']").val("0"); $("input[name='bld_area_end']").val("10000"); $("#land_area_label").html("0㎡(0평) - 제한없음"); $("#land_area_range").val([0, 10000]); $("#bld_area_label").html("0㎡(0평) - 제한없음"); $("#bld_area_range").val([0, 10000]); search_form.find(".area_range").hide(); if(search_form.find("input[name='part']:checked").val()=="Y"){ $(".area_title").hide(); search_form.find(".area_part_Y").show(); } else if(search_form.find("input[name='part']:checked").val()=="N"){ $(".area_title").hide(); search_form.find(".area_part_N").show(); search_form.find(".area_part_Y").show(); } else { $(".area_title").fadeIn(); } /*가격 검색 한줄로 변경 되면서 추가함*/ search_form.find(".area_range").hide(); if(search_form.find("select[name='part']").val()=="Y"){ $(".area_title").hide(); search_form.find(".area_part_Y").show(); } else if(search_form.find("select[name='part']").val()=="N"){ $(".area_title").hide(); search_form.find(".area_part_N").show(); search_form.find(".area_part_Y").show(); } else { $(".area_title").fadeIn(); } }