/*
  /search/ 用
*/

// Plugins
jQuery.cookie=function(A,G,I){var D={days:360,path:"/"};if(I){jQuery.extend(D,I)}var E=G?"set":"get";if(E=="get"){A=A+"=";var H=document.cookie.split("; ");for(var F=0;F<H.length;F++){if(H[F].indexOf(A)==0){return H[F].substring(A.length,H[F].length)}}return null}else{if(E=="set"){var C=new Date();C.setTime(C.getTime()+(D.days*24*60*60*1000));var B="; expires="+C.toGMTString();document.cookie=A+"="+G+B+"; path="+D.path}}};
(function(A){A.fn.set_tab=function(L){var C={log:false,default_index:"index.html",jump_to_anchored_tab:true,toggles_wrapper:"",tabs_wrapper:"",speed:false,hide_first_title:false,double_click_hide:false,remember:true,active_image_ext:false};if(L){jQuery.extend(C,L)}var B=[];var E=[];var F=this.length;var K=String(window.location).match(C.default_index)?new RegExp("(.*)("+C.default_index+")$").exec(String(document.location.pathname))[1]:document.location.pathname;var D=String(window.location).match(/#\w+/)?/#([^¥?]*)/.exec(String(window.location))[1]:false;var G=0;function H(O,N){tabs=A(C.tabs_wrapper+" > div",B[O]);if(C.speed){tabs.filter(":eq("+E[O]+")").slideUp(C.speed,function(){tabs.filter(":eq("+N+")").show().css("visibility","hidden").slideDown(C.speed).css("visibility","visible");A(C.toggles_wrapper+" > ul a",B[O]).removeClass("active").filter(":eq("+N+")").addClass("active")})}else{A(C.toggles_wrapper+" > ul a:first-child",B[O]).removeClass("active").filter(":eq("+N+")").addClass("active");A(C.toggles_wrapper+" > ul a:first-child img",B[O]).each(function(P){if(P!=N){this.src=this.src.replace(new RegExp(C.active_image_ext[2]+"(.[a-z]+)$"),C.active_image_ext[0]+"$1")}else{this.src=this.src.replace(new RegExp("("+C.active_image_ext[0]+"|"+C.active_image_ext[1]+")(.[a-z]+)$"),C.active_image_ext[2]+"$2")}});if(E[O]==N&&C.double_click_hide&&tabs.filter(":eq("+N+")").css("display")!="none"){tabs.filter(":eq("+N+")").hide();A(C.toggles_wrapper+" > ul a",B[O]).filter(":eq("+N+")").removeClass("active")}else{tabs.filter(":eq("+E[O]+")").hide();tabs.filter(":eq("+N+")").show().addClass("active")}}if(C.log){var M=A(C.toggles_wrapper+" > ul a:eq("+N+")",B[O]).attr("href");A.ajax({type:"GET",url:M,dataType:"xml",processData:false})}}function I(){var M="";for(i=0;i<E.length;i++){M+=i+":"+E[i]+" "}A.cookie("tabs["+K+"]",M)}function J(){if(!C.remember){return false}tab_cookie=A.cookie("tabs["+K+"]");if(tab_cookie){tab_cookie_splited=tab_cookie.split(" ");for(i=0;i<tab_cookie_splited.length;i++){current_value=tab_cookie_splited[i].split(":");E[current_value[0]]=current_value[1]}}}J();return this.each(function(M){B[M]=this;A(C.tabs_wrapper+" > div",B[M]).hide();if(C.hide_first_title){A("> div",B[M]).each(function(){A("> *:eq(0)",this).filter("h1,h2,h3,h4,h5,h6").hide()})}A(C.toggles_wrapper+" > ul",this).addClass("toggles").find("li>a:first-child").each(function(O){if((A("> div:eq("+O+")",B[M]).attr("id")==D)&&D){default_tab=O}A("a[@href$="+this.href.match(/#[^\?]*/)+"]").each(function(){this.tab_id=O;this.tabset_id=M});A("a[@href$="+this.href.match(/#[^\?]+/)+"]").click(function(){H(this.tabset_id,this.tab_id);E[this.tabset_id]=this.tab_id;if(C.remember){I()}this.blur();if(!navigator.userAgent.match("MSIE 5.5")){if(A(".toggles a[@href*="+this.href.match(/#[^\?]+/)[0]+"]").offset()["top"]>(A(window).scrollTop()+A(window).height())){window.scrollTo(0,A(".toggles a[@href*="+this.href.match(/#[^\?]+/)[0]+"]").offset()["top"])}}return false})});if(A("div#"+D,this).length>0&&D!=""){E[M]=A(C.tabs_wrapper+" > div",this).index(A("div#"+D,this)[0]);var N=this;if(C.jump_to_anchored_tab){window.setTimeout(function(){window.scrollTo(0,A(N).offset()["top"])},0)}}else{E[M]=E[M]||0}if(this.className.match(/default\[(\d+)\]/)){E[M]=parseInt(RegExp.$1)-1}H(M,E[M]);if(M+1==F&&C.remember){I()}}).addClass("enabled").find(C.tabs_wrapper+" > div").addClass("tab-contents")}})(jQuery);
// ready
//  DOM構築後に実行するべき処理
$().ready(function search(){
  /*装飾系*/
/*  $(".column-search>ol").each(function(){
    $("div.area,p.area", this).css({"margin":"10px 0 0 0"});
    $("div.set_height",this).set_height({delay: 2000});
    $(">li", this).css("position","relative")
    $("div.area,p.area", this).css({"position":"absolute","bottom":"10px","margin":"0"})
    $("div.area", this).css({"width":"265px"})
  });*/


  /*
   * form control
   */

  /*
   * form_ctl_func
   * formコントロール用のobject
   */
  var form_ctl_func = {}

  /*
   * form_ctl_func.select_area_a
   * エリア検索の選択されている地域を取得してエリアと地図を差し替える
   */
  form_ctl_func.select_area_a=function(){
    var _map_num = $("#area select").val();
    var _target  = $("#area"+_map_num);
    var _map_img = $("#area p.area img");
    var _p       = $("p",$("div.area").not("#main-contents"));
    var _notice_text="　";
    if(_map_num&&_target[0]){
      _p.hide();
      _target.show();
    }
    else{
      _p.show();
    }
    if(Number(_map_num)<1) _map_num=0;
    _map_img.attr("src",_map_img.attr("src").replace(/\d/,_map_num));
    switch(_map_num){
      case "1":
        _notice_text="30坪から300坪（90～900m²）の範囲内で入力してください。";
        break;
      case "2":
        _notice_text="30坪から300坪（90～900m²）の範囲内で入力してください。";
        break;
      case "3":
        _notice_text="20坪から300坪（60～900m²）の範囲内で入力してください。";
        break;
      case "5":
        _notice_text="20坪から300坪（60～900m²）の範囲内で入力してください。";
        break;
      case "6":
        _notice_text="20坪から300坪（60～900m²）の範囲内で入力してください。";
        break;
      case "4":
        _notice_text="15坪から300坪（45～900m²）の範囲内で入力してください。";
        break;
    }
    $("#notice-area-1").text(_notice_text);
  }

  /*
   * form_ctl_func.select_area_s
   * 駅名検索の選択されている地域を取得して路線を差し替える
   * 路線がチェックされていれば最寄り駅も差し替える
   * 地図の差し替えはしない
   */
  form_ctl_func.select_area_s=function(){
    var _map_num = $("#station select").val();
    var _target  = $("#line"+_map_num);
    var _p       = $("div.line p");
    var _notice_text="　";
    if(_map_num&&_target[0]){
      _p.hide();
      _target.show();
    }else{
      _p.show();
    };
    switch(_map_num){
      case "1":
        _notice_text="30坪から300坪（90～900m²）の範囲内で入力してください。";
        break;
      case "2":
        _notice_text="30坪から300坪（90～900m²）の範囲内で入力してください。";
        break;
      case "3":
        _notice_text="20坪から300坪（60～900m²）の範囲内で入力してください。";
        break;
      case "5":
        _notice_text="20坪から300坪（60～900m²）の範囲内で入力してください。";
        break;
      case "6":
        _notice_text="20坪から300坪（60～900m²）の範囲内で入力してください。";
        break;
      case "4":
        _notice_text="15坪から300坪（45～900m²）の範囲内で入力してください。";
        break;
    }
    $("#notice-area-2").text(_notice_text);
    form_ctl_func.select_station.call(_target);
  }

  /*
   * form_ctl_func.select_station
   * 駅名検索の路線が選択されているときに最寄り駅を差し替える
   * "form_ctl_func.select_area_s"からも呼び出している
   */
  form_ctl_func.select_station=function(){
    var _p    = $("#main-contents div.station p");
    var _flag = false;
    $("input",this).each(function(){
      if($(this).attr("checked")){
        $("#station"+$(this).val()).show();
        _flag=true;
      }
    });
    if(_flag){
      _p.hide();
    }else{
      _p.show();
    }
  }

  /*
   * 画面表示時の処理
   */

  /*
   * チェックボックスを全て隠す
   */
  $("li div.area dl,div.line dl,div.line>ul,#main-contents div.station dl,").hide();
  /*
   *全てのフォームの状態をチェックし適切な処理をする
   */
  form_ctl_func.select_area_a();
  form_ctl_func.select_area_s();

  /*
   * エリア検索のstep1
   */
  $("#area select").click(function(){
    $("li div.area dl").hide();
    form_ctl_func.select_area_a();
  });

  /*
   * エリア検索のstep2
   */
  $("#area input:checkbox").click(function(){
    if($("input:checked",$(this).parents("dl")).length>3){
      alert("エリアの指定は3つまでとなっております。");
      return false;
    }
  });

  /*
   * 駅名検索のstep1
   */
  $("#station select").click(function(){
    $("div.line dl,div.line>ul,#main-contents div.station>dl,").hide()
    form_ctl_func.select_area_s();
  });

  /*
   * 駅名検索のstep2
   */
  $("#station div.line input").click(function(){
    $("#main-contents div.station dl").hide()
    var _parent = $(this).parents("dl").length? $(this).parents("dl"): $(this).parents("ul");
    form_ctl_func.select_station.call(_parent);
  });
  $("#station li.step2 input:checkbox").click(function(){
    if($("input:checked",$(this).parents("dl")).length>5||$("input:checked",$(this).parents("ul")).length>5){
      alert("路線の指定は5つまでとなっております。");
      return false;
    }
  })

  /*
   * 駅名検索のstep2
   */
  $("#station li.step3 input:checkbox").click(function(){
    if($("input:checked",$("#station li.step3 dl:visible")).length>5){
      alert("駅の指定は5つまでとなっております。");
      return false;
    }
  })


  /*
   * form control ここまで
   */

  /*
   * Ajax通信
   */
  $("li>.btn input[type='image']").click(function(){
    var params = {};
    var _this = $(this);
    var _form=_this.parents("form");
    var defaultUri=_form.attr("action");
    if(_this.parents("#station").length){
      var _post_url="/search/ajax_results_for_station/";
      _form.attr("action",_post_url);
    }else{
      var _post_url="/search/ajax_results_for_area/";
      _form.attr("action",_post_url);
    }
    $(".hide", _form).removeClass("hide")
    $(".results", _form).hide();
    $("input,select",_form).each(function(){
      var _this = $(this);
      if(_this.attr("type")=="checkbox"&&_this.attr("checked")!=true){
      }else if(_this.attr("type") == "radio"){
        if(_this.attr("checked")==true){
          params[_this.attr("name")] = _this.val();
        }
      }else{
        params[_this.attr("name")] = _this.val();
      }
    });
    jQuery.postJSON = function(url, data, callback) {
      jQuery.post(url, data, callback, "json");
    };
    $.postJSON(_post_url,params,function(data){
      if(data["error"].length!=0){
        var _ul = $("ul.results", _form)
        $("li", _ul).remove();
        for(i in data["error"]){
          _ul.prepend("<li><em>"+data["error"][i]+"</em></li>");
        }
        _ul.show();
      }else{
        $("div.results em", _form).text(data["result"]);
        $("div.results", _form).show();
      }
    });
    _form.attr("action",defaultUri);
    return false;
  })
  /*
   * Ajax通信 ここまで
   */


  /*search results tsubo*/
  $("p.square-select").css("visibility","visible")
  var square_mode = function(_square_mode){
    $("p.square-select select").val(_square_mode)
    if(_square_mode=="tsubo"){
      $("#main-contents > .results").removeClass("square");
      $("#main-contents > .results").addClass("tsubo");
    }else if(_square_mode=="square"){
      $("#main-contents > .results").removeClass("tsubo");
      $("#main-contents > .results").addClass("square");
    }
  }
  var _square_mode = $($("p.square-select select")[0]).val();
  square_mode(_square_mode);
  $("p.square-select select").change(function(){
    var _square_mode = $(this).val();
    square_mode(_square_mode);
  });

  /*search results toggle*/
  $(".head-search-1 a").toggle(function(){
    $("img",this).attr("src",$("img",this).attr("src").replace("01","04"));
    $('div.results div.search').show();
    return false;
  },function(){
    $("img",this).attr("src",$("img",this).attr("src").replace("04","01"));
    $('div.results div.search').hide();
    return false;
  })
  if(location.href.match("type=sta")){
   $("a[href='#station']").click();
  }else if(location.href.match("type=area")){
   $("a[href='#area']").click();
  }
  
  $('#main-contents form').submit(function(){$('p.btn input',this).click();return false});
});

// onHtmlLoad
//  DOMの構築を待たずに最速で実行するべき処理
//  全てのHTMLのbody最下部にscript要素にてonHtmlLoadを呼び出す
var _onHtmlLoad = onHtmlLoad;
var onHtmlLoad = function(){
  $('div.search').set_tab({ tabs_wrapper: ">ul" , tabs_wrapper: ">form", remember: false});
  $('div.results div.search').hide();
  _onHtmlLoad();
}

// IEメモリーリーク対策
$(window).unload(function(){
  $("input,select").each(function(){
    this.onclick = null;
    this.ondblclick = null;
    this.onmousedown = null;
    this.onmousemove = null;
    this.onmouseup = null;
  })
});

