$(function(){
    yadowindow();
    bunki();
});
//DOM構築後;
//宿のデータをはめ込むyadodata.htmlを取り込む;
//ＤＯＭ構築完了後の分岐処理です;
//　表示件数ラジオボタン;
//　並べ替えラジオボタン;
//宿名検索をクリックしたとき;
//画面初期表示;
//地区選択時;
//都道府県選択時;
//エリア選択時;
//表示ループの作成;
//HTMLへ宿データ表示;
//次を表示をクリック;
//前を表示をクリック;
//表示件数のラジオボタンをクリック;
//並べ替えのラジオボタンをクリック(引数は並べ替えたい要素番号;）
//DOM構築後;
//宿のデータをはめ込むyadodata.htmlを取り込む;

function yadowindow(){
    inTag="";//inTagをグローバル変数宣言（初期値）;
    $.ajax({
        type : "post",
        url : "yadodata_html_get.php",
        data:{},
        cache:false,
        success : function(data,status){
            inTag=data;
        }
    });
}

//ＤＯＭ構築完了後の分岐処理です;
function bunki(){
     //グローバル変数
    areaYadoData=new Array();//宿種で抽出した宿データ格納用;
    count_areaYadoData=0;//抽出した宿データの数(長さ）を保存するグローバル変数（初期値）;
    selectYadoData=new Array();//宿種で抽出した宿データ格納用;
    countYadoData=0;//抽出した宿データの数(長さ）を保存するグローバル変数（初期値）;
    sortElmNo=0;//並べ替える要素のキー;
    beginPoint=0;//配列から取り出す開始位置（初期値）;
    dataSpan=1;//配列から取り出す区間（初期値）;
    endPoint=0;//配列から取り出す最後の位置（初期値）;
    setList();
    //宿名で検索;
    $("#yadomeikensaku_click").click(function(){
        yadomeikensaku($("#sisetumei").val());
    });

    //地区変更;
    $("#selChiku").change(function(){
        changeChiku($("#selChiku option:selected").text());
    });

    //県変更;
    $("#selKen").change(function(){
        changeKen($("#selKen option:selected").text());
    });

    //エリア変更;
    $("#selArea").change(function(){
        changeArea($("#selArea option:selected").text());
        loopmake();
    });

    //宿種が選択された時;
    $("#yadoshu_sentaku").change(function(){
        yadotype_click($("#yadoshu_sentaku option:selected").text());
    });

    //次を表示;
    $("input.idobutton_tugi").click(function(){
        clickButtonTugi();
        $("#td1").focus();
    });

    //前を表示;
    $("input.idobutton_mae").click(function(){
        clickButtonMae();
        $("#td1").focus();
    });
//表示件数ラジオボタン;
　　$("#kensu1").click(function(){
        dataSpan=1;radioKosin();
    });
    $("#kensu5").click(function(){
        dataSpan=5;radioKosin();
    });
    $("#kensu10").click(function(){
        dataSpan=10;radioKosin();
    });
 //並べ替えラジオボタン;
   $("input.narabekaeBtn").click(function(){
       sortElmNo=$("input.narabekaeBtn:checked").val();
       $("#td1").focus();
       sortYado(sortElmNo);
   });

  
}

//宿名検索をクリックしたとき;
function yadomeikensaku(yadomei){
   
     if(yadomei==""){
         //alert("宿名の全部または一部を入力して下さい");
         return;
     }
    
  //入力文字のチェック;
    var myregexp = new RegExp("[0-9]+|[a-z]+|[A-Z]+|[<]+|[>]+|[:]+|[;]+");//英数字が1個以上あるか否か検査
    var kensa=myregexp.test(yadomei);
    if(kensa===true){
        //alert("英数字は入力できません");
        return;
    }

   setList();//オプションを削除;
    $("#td1").focus();
    $("div").remove();
    $("#narabekae").css("visibility","hidden");
    $("#narabekaeTop").css("visibility","hidden");
    $.ajax({
        type : "post",
        url : "yadosearch.php",
        data:{
            "sosinItem":"yadoName",
            "sosinValue":yadomei
        },
        cache:false,
        dataType:"json",
        success:function(data,status){
           
            countYadoData=data.length;

            if(data[0]){
            for(var i=0; i<countYadoData; i++){
                yadoData=data[i];
                selectYadoData[i]=new Array();//i番要素を配列にする;
                selectYadoData[i][1]=yadoData;//受信データを配列に格納;
                }


             beginPoint=0;
             loopmake();
            }
            else{
                alert("該当する施設は見つかりません");
                return;
            }
            
        }
    });
    
}
// 画面初期表示;
function setList(){
    $("#todofuken ~ option").remove();//#chihoの兄弟要素を削除;
    $("#area ~ option").remove();//#areaの兄弟要素を削除;
    $("#siteisimai ~ option").remove();//
    $("#selChiku").val(0);
    $("#selKen").val(0);
    $("#selArea").val(0);
    $("#yadoshu_sentaku").val(0);
}

// 地区選択時;
function changeChiku(selChiku){
    
    $("#todofuken ~ option").remove();//#chihoの兄弟要素を削除;
    $("#area ~ option").remove();//#areaの兄弟要素を削除;
    $("#selArea").val(0);
   

    $.ajax({
        type : "post",
        url : "yadosearch.php",
        data:{
            "sosinItem":"koikiarea_choice",
            "sosinValue":selChiku
        },
        cache:false,
        dataType:"json",
        success : function(data,status){
            for(var i=0; i<data.length; i++){
                var op=data[i];
                $('#selKen').append($('<option>').attr({
                    value: i
                }).text(op));
            }



        }



    });
}


// 都道府県選択時;
function changeKen(selKen){
    $("#area ~ option").remove();//#chihoの兄弟要素を削除;
    $("#selArea").val(0);
　　

    $.ajax({
        type : "post",
        url : "yadosearch.php",
        data:{
            "sosinItem":"ken",
            "sosinValue":selKen
        },
        cache:false,
        dataType:"json",
        success : function(data,status){
            for(var i=0;i<data.length;i++){
                var op=data[i];
                $('#selArea').append($('<option>').attr({value:i}).text(op));
            }

        }

    });


}


// エリア選択時;

function changeArea(selArea){
    
    areaYadoData=new Array();
    selectYadoData=new Array();//エリアで抽出した宿データを保存するグローバル配列変数;
     $("#td1").focus();
    $("#sisetumei").val("");//施設名欄は空文字にする;
    $("div").remove();
    $("#narabekae").css("visibility","visible");
    $("#narabekaeTop").css("visibility","visible");
   

    $.ajax({
        type : "post",
        url : "yadosearch.php",
        data:{
            "sosinItem":"area",
            "sosinValue":selArea
        },
        cache:false,
        dataType:"json",
        success : function(data,status){
            countYadoData=data.length;
            count_areaYadoData=data.length;
            for(var i=0; i<countYadoData; i++){
                yadoData=data[i];
                areaYadoData[i]=new Array();//i番要素を配列（二元配列）にする;
                areaYadoData[i][1]=yadoData;//受信データを配列に格納;
                areaYadoData[i][0]=yadoData[2];//宿種を配列に格納;

                selectYadoData[i]=new Array();//i番要素を配列（二元配列）にする;
                selectYadoData[i][1]=yadoData;//受信データを配列に格納;
               
                }
                yadotype();//宿タイプオプションの生成表示;

              　if(sortElmNo==0){//並べ替え項目が初期値のときは価格にチェック;
                     $("#kakaku").attr("checked","checked");
                }

              sortElmNo=$("input.narabekaeBtn:checked").val();//並べ替え項目でソートする;
              sortYado(sortElmNo);
            beginPoint=0;
            
            
            }
    });
}
//表示ループの作成;
function loopmake(){
    $("#topimage").remove();
    $("div.copywindow").empty();//古い表示を消してしまう.子要素をすべて削除
    $("div.copywindow").remove;
   
    
    if(beginPoint<0){beginPoint=0;}
    if(beginPoint>countYadoData-1){beginPoint=countYadoData-1;}
    endPoint=beginPoint+dataSpan-1;
    if(endPoint>(countYadoData-1)){endPoint=countYadoData-1;}
            if(countYadoData>dataSpan){
               $("#kensusentaku").css("visibility","visible");
               $("table.hyojiido").css("visibility","visible");
               }
               else{
               $("table.hyojiido").css("visibility","hidden");
               }
            for(var i=endPoint;i>beginPoint-1;i--){
                hyoji(selectYadoData[i][1],i);//宿データを１件づつ表示へ;
            }
    
    $("#td4").text(countYadoData+"件");
    $("td.kaisi").text(beginPoint+1);
    $("td.owari").text(endPoint+1);
}

//HTMLへ宿データ表示;
function hyoji(yadoData,index){
    $("#yadowindow").after(inTag);
    $("#yadowindow").css("visibility", "visible");
    $("#originalwindow").attr("class", "copywindow");//コピー後のタグの識別用にclass属性を設定しておく

    var yadoAdd=yadoData[0];$("#yadoAdd").text(yadoAdd);
    var yadoName=yadoData[1];$("#yadoName").text(yadoName);
    // var yadoshu=yadoData[2];
    var chatch=yadoData[3];$("#chatch").text(chatch);
    var kuchikomi=yadoData[4];$("#kuchikomi").text(kuchikomi);
    var heya=yadoData[5];$("#heya").text(heya);
    var moning=yadoData[6];$("#moning").text(moning);
    var service=yadoData[7];$("#service").text(service);
    var bath=yadoData[8];$("#bath").text(bath);
    var evening=yadoData[9];$("#evening").text(evening);
    var clean=yadoData[10];$("#clean").text(clean);
    var access=yadoData[11];$("#access").text(access);
    var spring=yadoData[12];$("#spring").text(spring);
    var sogei=yadoData[13];$("#sogei").text(sogei);
    var parking=yadoData[14];$("#parking").text(parking);
    var map=yadoData[15];$("#map").append(map);
 　 var kuchikomiButton=yadoData[16];$("#kuchikomiButton").append(kuchikomiButton);
    var valueC=yadoData[17];$("#yoyaku").append(valueC);
    var gazoLink=yadoData[18];$("#gazoLink").append(gazoLink);
    var heikin=yadoData[19];$("#heikin").text(heikin);
    var heigt=yadoData[20];$("#heigt").text(heigt);
    var low  =yadoData[21];$("#low").text(low);

    if(index!=0){//0は最後のデータ
      var cloneTag=$("#originalwindow").clone(true);//子要素を含め複製作成
      $("#yadowindow").after(cloneTag);
      $("#originalwindow").empty();//元のタグの子要素を削除
      $("#originalwindow").remove;//元のタグを削除
    }
  
    
}

//次を表示をクリック;
function clickButtonTugi(){
     $("div").remove();
     beginPoint=beginPoint+dataSpan;
     loopmake();
}

//前を表示をクリック;
function clickButtonMae(){
     $("div").remove();
     beginPoint=beginPoint-dataSpan;
     loopmake();
}

//表示件数のラジオボタンをクリック;
function radioKosin(){
      $("div").remove();
      loopmake();
}

//比較関数;
 　　　　　　function hikaku(a,b){
            return a[0]-b[0];//配列の０番目の要素を比較;
        　　 }
//並べ替えのラジオボタンをクリック(引数は並べ替えたい要素番号）;
function sortYado(sortElmNo){
    var sortElm;//並べ替えのキー要素の値;
    　for(k=0;k<countYadoData;k++){
         dataK=selectYadoData[k][1];
         sortElm=dataK[sortElmNo];
         selectYadoData[k][0]=sortElm;// 各要素の先頭に並べ替え用の要素を追加;
     }
     selectYadoData.sort();//先頭要素をキーにしてソート(昇順）;
     if(sortElmNo!=22){
         selectYadoData.reverse();//降順;
     }
　　　
   //価格で並べ替え;
     if(sortElmNo==22){　　//22は数値の平均価格
        selectYadoData.sort(hikaku);
     }
　
      
     //ループさせて表示へ;
     $("div").remove();
     beginPoint=0;
     loopmake();
     sortAreaYado(sortElmNo);
}

//エリアの全データをソートしておく(引数は並べ替えたい要素番号）;
function sortAreaYado(sortElmNo){
    var sortElm;//並べ替えのキー要素の値;
    　for(k=0;k<count_areaYadoData;k++){
         dataK=areaYadoData[k][1];
         sortElm=dataK[sortElmNo];
         areaYadoData[k][0]=sortElm;// 各要素の先頭に並べ替え用の要素を追加;
     }
     areaYadoData.sort();//先頭要素をキーにしてソート(昇順）;
     if(sortElmNo!=22){
         areaYadoData.reverse();//降順;
     }
　　　
   //価格で並べ替え
     if(sortElmNo==22){　　//22は数値の平均価格;
        areaYadoData.sort(hikaku);
     }
　


}

//エリアの宿種オプションを生成;
function yadotype(){
    var onsensu=onsen();//エリアにある温泉数を数える;
    $('#yadoshu option').remove();//子要素のオプションを一旦削除;

    var yadoshu=new Array();
    for(k=0;k<areaYadoData.length;k++){
        yadoshu[k]=areaYadoData[k][0];//全エリアデータの宿種をゲット;
    }
    yadoshu.sort();
    var yadoshu2=new Array();//重複除去後の配列格納用;
    yadoshu2[0]=yadoshu[0];
    var j=1;
    for(k=1;k<areaYadoData.length;k++){
        if(yadoshu[k]!=yadoshu[k-1]){//値の変わり目を拾って重複除去;
            yadoshu2[j]=yadoshu[k];
            j=j+1;
        }
    }

     $('#yadoshu_sentaku').append($('<option>').attr({
         value:0,
         id:"siteisimai"
     }).text("指定しない"));


     if(onsensu!=0){
          $('#yadoshu_sentaku').append($('<option>').attr({//エリアに温泉があれば追加;
                    value:1
                }).text("温泉"));
     }

    var mycount=yadoshu2.length;
    for(i=0;i<mycount;i++){
        op=yadoshu2[i];
        $('#yadoshu_sentaku').append($('<option>').attr({//宿種オプシオンを追加;
                    value:i+2
                }).text(op));
    }
    
}

function yadotype_click(ytype){
    $("#td1").focus();
    selectYadoData=new Array();//空の配列で上書き;
    //温泉がクリックされた場合;
    if(ytype=="温泉"){
        for(var k=0;k<onsenYadoData.length;k++){
            selectYadoData[k]=new Array();//j番要素を配列（二元配列）にする;
            selectYadoData[k][1]=onsenYadoData[k];
        }
    $("div").remove();
    beginPoint=0;
    countYadoData=onsenYadoData.length;
    
    loopmake();
   // sortElmNo=$("input.narabekaeBtn:checked").val();
    //sortYado(sortElmNo);
    return; //関数を抜ける;
    }

    //温泉以外がクリックされた場合;
    var j=0;
    for(var k=0;k<count_areaYadoData;k++){
        yadoData=areaYadoData[k][1];
        var yadoshu=yadoData[2];
        if(yadoshu==ytype){//宿タイプが指定された場合;
            selectYadoData[j]=new Array();//j番要素を配列（二元配列）にする;
            selectYadoData[j][1]=yadoData;
            j=j+1;
        }
        if(ytype=="指定しない"){
            selectYadoData[j]=new Array();//j番要素を配列（二元配列）にする;
            selectYadoData[j][1]=yadoData;
           j=j+1;
        }
    }
    

    $("div").remove();
    beginPoint=0;
    countYadoData=j;
    loopmake();
  
}

function onsen(){
    　//温泉のある施設だけ抽出;
     　onsenYadoData=new Array();
       var j=0;
　　   searchElmNo=12;　//温泉のデータは12要素にある;
       for(k=0;k<countYadoData;k++){
           yadoData=areaYadoData[k][1];
           var onsenData=yadoData[searchElmNo];
           var strno=onsenData.indexOf("温泉");//温泉の文字がある位置、無い場合は-1が返される;
           var strno2=onsenData.indexOf("有");//有の文字がある位置、無い場合は-1が返される;
         
           if(strno!=-1 || strno2!=-1){
                onsenYadoData[j]=yadoData;//温泉または有のみ配列に追加;
                j=j+1;
           }
          
       }
       count_onsenYadoData=onsenYadoData.length;
      return count_onsenYadoData;
     }
