var NO_LINE_CHECKED    = "路線が選択されていません。\n";
var LIMIT_LINE_CHECKED = "路線が6箇所以上選択されています。\n";
var LIMIT_LINE_NUM  = 0;
var NO_STATION_CHECKED = "駅が選択されていません。\n";
var LIMIT_STATION_CHECKED = "駅が6箇所以上選択されています。\n";
var LIMIT_STATION_NUM  = 0;
var NO_CITY_CHECKED = "市区が選択されていません。\n";
var LIMIT_CITY_CHECKED = "市区が6箇所以上選択されています。\n";
var LIMIT_CITY_NUM  = 0;
var NO_AREA_SEARCH_CHECKED = "こだわり条件が選択されていません。\n";

function clickOnlyLineTab(sName,id,onlyName){
    //var frm = document.popfrm;
    var isClose = false;
    var action  = "";
	var dialog_div = "";

    switch(sName){
        case "onlyarea2search":
            var frm = document.popfrm1;
            for(i=0;i<frm.elements.length;i++) {
                if (frm.elements[i].type == "checkbox" && frm.elements[i].value==onlyName && frm.elements[i].name.substring(0,8)=="city_id_") {
                    frm.elements[i].checked = true;
                }
            }
            isClose = true;
			var dialog_div = "#dialog1";
            $(dialog_div).dialog('close');

            var parentHeight = $("body").attr('scrollHeight');
            var parentWidth  = $("body").attr('scrollWidth');
            $(".ui-widget-overlay").css("height", parentHeight+"px");
            $(".ui-widget-overlay").css("width", parentWidth+"px");

            frm.action = "/search/stock/stock_list.php?mode=top&area_id="+id;
            frm.target="_self";
            frm.submit();
            $("#loading").show();
            return;
            break;
        case "onlyline2search":
            var frm = document.popfrm2;
			var dialog_div = "#dialog2";
            for(i=0;i<frm.elements.length;i++) {
                if (frm.elements[i].type == "checkbox" && frm.elements[i].value==onlyName && frm.elements[i].name.substring(0,8)=="line_id_") {
                    frm.elements[i].checked = true;
                }
            }
            action = "/search/line/stalist.php?area_id="+id;
            break;
        case "onlysta2search":
            var frm = document.popfrm3;
            //選択しない沿線を削除する処理を行う
            ftnDelNotCheckedLine(frm);
			var dialog_div = "#dialog2";
            $(dialog_div).dialog('close');

            var parentHeight = $("body").attr('scrollHeight');
            var parentWidth  = $("body").attr('scrollWidth');
            $(".ui-widget-overlay").css("height", parentHeight+"px");
            $(".ui-widget-overlay").css("width", parentWidth+"px");

            frm.action = "/search/stock/stock_list.php?mode=top&area_id="+id;
            frm.target="_self";
            frm.submit();
            $("#loading").show();
            return;
            break;
        case "search_heya":
            var frm = document.popfrm4;
			var dialog_div = "#dialog4";
            for(i=0;i<frm.elements.length;i++) {
                if (frm.elements[i].type == "checkbox" && frm.elements[i].value==onlyName && frm.elements[i].name.substring(0,11)=="zyouken_id_") {
                    frm.elements[i].checked = true;
                }
            }
            isClose = true;
            action = "/search/stock/stock_list.php?mode=search";
            break;
        default:
            break;
    }

    $.ajax({
      url: action,
          global: false,
          type: "POST",
          data: $("form").serialize(),
          dataType: "html",
          beforeSend:function(){

              var parentHeight = $("body").attr('scrollHeight');
              var parentWidth  = $("body").attr('scrollWidth');
              $(".ui-widget-overlay").css("height", parentHeight+"px");
              $(".ui-widget-overlay").css("width", parentWidth+"px");

              $("#loading").show();
          },
          success: function(msg){
              if ( isClose == true ) {
                  $("#search_list").empty();
                  $("#search_list").html(msg);
			  	  setParam();
                  $(dialog_div).dialog('close');               
              }else{
                  $(dialog_div).empty();
                  $(dialog_div).html(msg);
              }
              $("#loading").hide();
          }
       }
    );

}

/**
 * 画面遷移関数(ポップアップ画面共通)
 * @param sName 操作タイプ(各画面判別用)
 * @param id チェックされたcheckboxの識別子
 * [使用例]
 * <a href="JavaScript:clickLineTab('line2station',{$area_id});">サンプル</a>
 */
function clickLineTab(sName,id){
    //var frm = document.popfrm;
    var action = "";
	var dialog_div = "";

    switch(sName){
        case "area":
            var frm = document.popfrm1;
            dialog_div = "#dialog1";
            action = "/search/line/arealist.php?area_id="+id;
            $("#area_id").attr("value",id);
            break;
        case "return2line":
        case "line":
            var frm = document.popfrm2;
            dialog_div = "#dialog2";
            action = "/search/line/linelist.php?area_id="+id;
            $("#area_id").attr("value",id);
            break;
        case "area2search":
            var frm = document.popfrm1;
//            dialog_div = "#dialog1";
            if (submitCheck(sName, frm)==false) return;
            $("#dialog1").dialog('close');
            searchDoAjax(sName,id,document.popfrm1);
            return;
            break;
        case "line2station":
            var frm = document.popfrm2;
            dialog_div = "#dialog2";
            if (submitCheck(sName, frm)==false) return;
            action = "/search/line/stalist.php?area_id="+id;
            $("#area_id").attr("value",id);
            break;
        case "station2search":
            var frm = document.popfrm3;
            if (submitCheck(sName, frm)==false) return;
            //選択しない沿線を削除する処理を行う
            ftnDelNotCheckedLine(frm);
            $("#dialog2").dialog('close');
            searchDoAjax(sName,id,document.popfrm3);
            return;
            break;
        case "lineAll":
            var frm = document.popfrm2;
            //dialog_div = "#dialog2";
            if (submitCheck(sName, frm)==false) return;
            $("#dialog2").dialog('close');
            //action = "/search/stock/stock_list.php?mode="+sName;
            searchDoAjax(sName,id,document.popfrm2);
            return;
            break;
        default:
            break;
     }

     $.ajax({
         url: action,
         global: false,
         type: "POST",
         // data: ({"area_id" : id}),
         data: $("form").serialize(),
         dataType: "html",
         beforeSend:function(){

             var parentHeight = $("body").attr('scrollHeight');
             var parentWidth  = $("body").attr('scrollWidth');
             $(".ui-widget-overlay").css("height", parentHeight+"px");
             $(".ui-widget-overlay").css("width", parentWidth+"px");

             $("#loading").show();
         },
         success: function(msg){
             $(dialog_div).empty();
             $(dialog_div).html(msg);
             setParam();
             $("#loading").hide();
         }
     });
     return;
}

function setParam () {
	// title切り替え
    if (typeof($("#hid_title").attr("value")) != "undefined") {
	    document.title = $("#hid_title").attr("value");
    }

	// h1切り替え
	var h1_obj = document.getElementsByTagName("h1")[0]; 
    if (typeof($("#hid_h1").attr("value")) != "undefined") {
        h1_obj.innerHTML = $("#hid_h1").attr("value");
    }

	// h2切り替え
	var h2_obj = document.getElementById("search_title_comment"); 
    if (typeof($("#hid_h2").attr("value")) != "undefined") {
        h2_obj.innerHTML = $("#hid_h2").attr("value");
    }

	// pankuzu切り替え
	var pangkuzu_obj = document.getElementById("pangkuzu"); 
	var header_area_name_obj = document.getElementById("header_area_name"); 
    if (typeof($("#hid_pangkuzu").attr("value")) != "undefined") {
        pangkuzu_obj.innerHTML = $("#hid_pangkuzu").attr("value");
        header_area_name_obj.innerHTML = $("#hid_pangkuzu").attr("value");
    }

	//var metas = document.getElementsByTagName("meta"); 

	// keywords切り替え
	//document.getElementsByTagName("meta")[1].content = $("#hid_keywords").attr("value");
	// description切り替え
	//document.getElementsByTagName("meta")[2].content = $("#hid_description").attr("value");
}

/**
 * Popup画面検索用VALUEの設定
 * @param sName 操作タイプ(各画面判別用)
 * @return Popup画面検索用VALUE
 */
function getPopVal(sName) {
    var frm = document.popfrm1;
    var res = "";
    var len = 0;
    var chk = "";
    switch(sName){
        case "station2search":
            var frm = document.popfrm3;
            chk = "station_id_";
            len = 11;
            break;
        case "area2search":
            var frm = document.popfrm1;
            chk = "city_id_";
            len = 8;
            break;
        case "zyoukennSearch":
            var frm = document.popfrm4;
            chk = "zyouken_id_";
            len = 11;
            break;
        default:
            return;
            break;
    }
    for(i=0;i<frm.elements.length;i++) {
        if (frm.elements[i].type == "checkbox" && frm.elements[i].checked==true && frm.elements[i].name.substring(0,len)==chk) {
            res += ","+frm.elements[i].value ;
        }
    }
    res = res.substring(1);
    return res;
}

/**
 * 小分類全チェック用関数(ポップアップ画面共通)
 * @param sName 操作タイプ(各画面判別用)
 * @param id チェックされたcheckboxの識別子
 * @param sta チェック状態(true;false)
 * [使用例]
 * <input name="group_id_{$key}" id="group_id_{$key}" type="checkbox" value="{$key}" OnClick="JavaScript:checkboxDo('group','{$key}',this.checked);" />
 *
 */
function checkboxDo( sName, id, sta ) {
    switch(sName){
        case "group":
            name = "line_id_"+id+"[]";
            break;
        case "line":
            name = "station_id_"+id+"[]";
            break;
        case "area":
            name = "city_id_"+id+"[]";
            break;
        case "sort":
            name = "zyouken_id_"+id+"[]";
            break;
        default:
            break;
    }
    var obj = document.getElementsByName(name);
    allCheckBox(obj,sta);
}

/**
 * 小分類チェックした項目解除すれば、大分類チェックせず(ポップアップ画面共通)
 * @param sName 操作タイプ(各画面判別用)
 * @param obj チェックボックス対象
 * [使用例]
 * OnClick="JavaScript:clickCheck('group',this);"
 */
function clickCheck( sName, obj ) {
    if ( obj.checked == false ) {
        switch(sName){
            case "group":
                name = "group_id_"+obj.name.substring(8,9);
                break;
            case "line":
                name = "line_id_"+obj.name.substring(8,9);
                break;
            default:
                break;
        }
        var obj = document.getElementsByName(name);
        allCheckBox(obj,false);
    }
}

/**
 * submit前のチェック処理
 * @param sName 操作タイプ(各画面判別用)
 * @return  チェック結果
 * [使用例]
 * if (submitCheck(sName)==false) return;
 */
function submitCheck( sName,frm_param ) {
    var frm = frm_param;
    var res = false;
    var cnt = 0;

    switch(sName){
        case "line2station":
            for(i=0;i<frm.elements.length;i++) {
                if (frm.elements[i].type == "checkbox" && frm.elements[i].checked==true && frm.elements[i].name.substring(0,8)=="line_id_") {
                    cnt++;
                }
            }
            if (cnt==0) {
                alert(NO_LINE_CHECKED);
            } else if(LIMIT_LINE_NUM!=0 && cnt>LIMIT_LINE_NUM) {
                alert(LIMIT_LINE_CHECKED);
            }else{
                res = true;
            }
            break;
        case "station2search":
            for(i=0;i<frm.elements.length;i++) {
                if (frm.elements[i].type == "checkbox" && frm.elements[i].checked==true && frm.elements[i].name.substring(0,11)=="station_id_") {
                    cnt++;
                }
            }
            if (cnt==0) {
                alert(NO_STATION_CHECKED);
            } else if(LIMIT_STATION_NUM!=0 && cnt>LIMIT_STATION_NUM) {
                alert(LIMIT_STATION_CHECKED);
            }else{
                res = true;
            }
            break;
        case "area2search":
            for(i=0;i<frm.elements.length;i++) {
                if (frm.elements[i].type == "checkbox" && frm.elements[i].checked==true && frm.elements[i].name.substring(0,8)=="city_id_") {
                    cnt++;
                }
            }
            if (cnt==0) {
                alert(NO_CITY_CHECKED);
            } else if(LIMIT_CITY_NUM!=0 && cnt>LIMIT_CITY_NUM) {
                alert(LIMIT_CITY_CHECKED);
            }else{
                res = true;
            }
            break;
        case "zyoukennSearch":
            for(i=0;i<frm.elements.length;i++) {
                if (frm.elements[i].type == "checkbox" && frm.elements[i].checked==true && frm.elements[i].name.substring(0,11)=="zyouken_id_") {
                    cnt++;
                }
            }
            if (cnt==0) {
                alert(NO_AREA_SEARCH_CHECKED);
            }else{
                res = true;
            }
            break;
        case "lineAll":
            for(i=0;i<frm.elements.length;i++) {
                if (frm.elements[i].type == "checkbox" && frm.elements[i].checked==true && frm.elements[i].name.substring(0,8)=="line_id_") {
                    cnt++;
                }
            }
            if (cnt==0) {
                alert(NO_LINE_CHECKED);
            } else if(LIMIT_LINE_NUM!=0 && cnt>LIMIT_LINE_NUM) {
                alert(LIMIT_LINE_CHECKED);
            }else{
                res = true;
            }
            break;
        default:
            break;
    }

    return res;
}

/**
 * checkbox オブジェクトを全て選択・未選択状態にします
 * @param chkObj checkbox object
 * @param bCheck 選択・未選択フラグ(選択時は true)
 * [使用例]
 * <INPUT type="checkbox" name="hoge">
 * allCheckBox(document.form名.hoge, true); <= 全選択の場合
 * allCheckBox(document.form名.hoge, false); <= 全選択解除の場合
 *
 */
function allCheckBox(chkObj, bCheck){
    //if((chkObj == null) || (chkObj.type != 'checkbox')) return;
    if(chkObj.length){
        for(i = 0; i < chkObj.length; i++){
//alert(chkObj[i].disabled);
            if(chkObj[i].disabled) continue;
            chkObj[i].checked = bCheck;
        }
    }else{
        if(!chkObj.disabled){
            chkObj.checked = bCheck;
        }
    }
}

/**
 * チェックボックスのチェック数を返します
 * @return  チェックボックスチェック数
 *
 */
function getCheckCount(chkObj){
    var iLen = chkObj.length;
    var iCnt = 0;
    if(iLen){
        for(i = 0; i < iLen; i++){
            if(chkObj[i].checked) iCnt++;
        }
    }else{
        if(chkObj.checked) iCnt++;
    }

    return iCnt;
}


/*
 *  searchDoAjax
 */

function searchDoAjax(sName,id,popfrm) {

    var frm = popfrm;

    var val="";
    val = getPopVal(sName);

    frm.action = "/search/stock/stock_list.php?mode=top&station_type="+sName+"&area_id="+id; 

/***********
    $.ajax({
      url: action,
          global: false,
          type: "POST",
          data: $("form").serialize(),
          dataType: "html",
          beforeSend:function(){
              $("#loading").show();
          },
          success: function(msg){
              $("#loading").hide();
              $("#search_list").html(msg);
			  setParam();
          }
       }
    );

    $("#dialog").dialog('close');
**********/

    $("#dialog").dialog('close');

    var parentHeight = $("body").attr('scrollHeight');
    var parentWidth  = $("body").attr('scrollWidth');
    $(".ui-widget-overlay").css("height", parentHeight+"px");
    $(".ui-widget-overlay").css("width", parentWidth+"px");

    frm.target="_self";
    frm.submit();
    $("#loading").show();
    return;
}

function ftnDelNotCheckedLine(frm){
    var arrLineChecked  = new Array();
    var int_index = 0;
    for(i=0;i<frm.elements.length;i++) {
      if (frm.elements[i].type == "checkbox" && frm.elements[i].name.substring(0,11)=="station_id_") {
        if (frm.elements[i].checked) {
            var str_temp = frm.elements[i].name.replace(/\[\]/, "");
            arrLineChecked[int_index] = str_temp.substring(11);
            int_index++;
        }
      }
    }
    var arr_temp = new Array();
    int_index = 0;
    for(i=0;i<frm.elements.length;i++) {
      if (frm.elements[i].type == "hidden" && frm.elements[i].name.substring(0,8)=="line_id_") {
          var bln_inArray = false;
          for(j = 0;j<arrLineChecked.length;j++){
              if(arrLineChecked[j] == frm.elements[i].value){
               bln_inArray = true;
               break;
             }
         }
         if (bln_inArray == false){
            arr_temp[int_index] = frm.elements[i].id;
            int_index++;
         }
      }
    }
    for(i=0;i<arr_temp.length;i++) {
      var obj = document.getElementById(arr_temp[i]);
      obj.parentNode.removeChild(obj);
    }

}

