﻿var chkboxobj;
var qformheight= "0px";

//
// グループ選択チェックボックス
//
function checkbox(x0,y0,datafile){
  var form0=  "<form id=\"chkbox\" ";
      form0+= "style=\"position:absolute; top:"+y0.toString()+"px; left:"+x0.toString()+"px; ";
      form0+= "background-color: #eeeeee; border: 1px solid black; padding: 2px;\">";
  var form1= "</form>";

  var a= Array();
  var input= "";
  var len= ilist.length;
  for(var i=0;i<len;i++){
    a= csvread(iconf[ilist[i]]);

    var chked= ( ihddn[ilist[i]] != "hidden" ) ? "checked" : "";

    input+= "<input name=\""+ilist[i]+"\" type=\"checkbox\"";
    input+= " onclick=\'mapfrm.gftrchange(\""+ilist[i]+"\",this.checked);\' "+chked+">";
    input+= "<img src=\""+a.idir+a.icon+"\" width=\"16\" height=\"16\" style=\"cursor:pointer;\" ";
    input+= "onclick=\"javascript: showctg('"+ilist[i]+"');openqform()\"> ";
    input+= a.gname+"<br>";
  }

  document.write(form0+input+form1);

  chkboxobj= document.getElementById("chkbox");
}

function clearchkbox(){
  var len= ilist.length;
  for(var i=0;i<len;i++){
    chkboxobj[ilist[i]].checked= false;
    mapfrm.gftrchange(ilist[i],false);
  }
}

//
// 検索
//
function querybutton(x0,y0,w0,h0){
  var span0= "<span id=\"qrbttn\" style=\"position:absolute; top:"+y0.toString()+"px; left:"+x0.toString()+"px;padding: 1px;\">";
  var span1= "</span>";

  var click= "onclick='openqform()'";
  var a0= "<button style=\"width:"+w0+"px; height:"+h0+"px; padding: 1px;\" "+click+">検索";
  var a1= "</button>";

  document.write(span0+a0+a1+span1);
}

function queryform(x0,y0,w0,h0){
  var span0=  "<span id=\"queryf\" style=\"position:absolute; "
      span0+= "top:"+y0+"px; left:"+x0+"px; width:"+w0+"px; height:0px;"
      span0+= "visibility:hidden; overflow:scroll; background-color:#ffffff\">";
  var span1= "</span>";

  var t0= "<table style=\"background-color:#ffffff;\"><tr><td>";
  var t1= "</td></tr><tr><td>";
  var t2= "</td></tr></table>";

  var f0= "<form id=\"querys\" action=\"javascript: querymatch(document.getElementById('query_str').value);\">";
  var f1= "</form>";

  var i0= "<input type=\"text\" id=\"query_str\" size=40><br>";
  var i1= "<input type=\"submit\" value=\"検索\">";
  var i2= "    <input type=\"button\" value=\"閉じる\" onclick='javascript: clearqform();'>";

  var s0= "<span id=\"result\">";
  var s1= "</span>";

  document.write(span0+ t0+ f0 +i0+i1+i2 +f1 +t1 +s0+s1 +t2 +span1);

  qformheight= h0;
}

function openqform(){
  setvisible("queryf");
  sethidden("qrbttn");

  var f= document.getElementById("queryf");
  f.style.height= qformheight+"px";
}

function clearqform(){
  setvisible("qrbttn");

  sethidden("queryf");
  var f= document.getElementById("queryf");
  f.style.height= "0px";

  var r= document.getElementById("result");
  setinnerhtml(r,"");
}

// TODO
function querymatch(str){
  mapfrm.iselectchange("element");

  var re= new RegExp(str,"i");
  var list= "";

  var tlen= mapfrm.ilist.length;
  for(var j=0;j<tlen;j++){
    var name= ilist[j];
    var len= mapfrm.ftrobj[name].mem.length;

    for(var i=0;i<len;i++){
      var m= false;

      var fobj= mapfrm.ftrobj[name].mem[i];
      for( q in mapfrm.ftrobj[name].qitem ){
        var s= mapfrm.ftrobj[name].qitem[q];
        if( fobj[s].match(re) ){ m= true ;}
      }

      if( m ){
        list+= qoutput(name,i);

        mapfrm.ftrload(name,i);
        mapfrm.eftrset(name,i);
      }
    }
  }

  var r= document.getElementById("result");
  setinnerhtml(r,list);
}

//// TODO
function showctg(str){
  mapfrm.iselectchange("group");

  var re= new RegExp(str,"i");
  var list= "";

  var tlen= mapfrm.ilist.length;
  for(var j=0;j<tlen;j++){
    var name= ilist[j];
    var len= mapfrm.ftrobj[name].mem.length;
    for(var i=0;i<len;i++){
      var m= false;

      if( name.match(re) ){ m= true; }

      if( m ){
        list+= qoutput(name,i);
      }
    }
  }

  var r= document.getElementById("result");
  setinnerhtml(r,list)
}

function qoutput(name,i){
  var fobj= mapfrm.ftrobj[name].mem[i];
  var title= fobj.title;
  var genre= fobj.genre;
  var opt= "'"+name+"',"+i+"";

  var list= "";
  list+= "<a href=\"javascript: migratemapftr("+opt+");\">";
  list+= "<img src=\""+fobj.src+"\" width=\"16\" height=\"16\" border=0> ";
  list+= title+"</a><br>\n";

  return list;
}

//
// ポップアップウィンドウ
//
function inforoom(x0,y0,w0,h0){
  var span0= "<span id=\"infos\" style=\"position:absolute; top:"+y0.toString()+"px; left:"+x0.toString()+"px; visibility:hidden\">";
  var span1= "</span>";

  var tbl0= "<table id=\"infot\" width=\""+w0.toString()+"px\">";
  var tbl1= "</table>";

  var tb0= "<tr><td id=\"infob\" height="+h0.toString()+"\"px\" style=\"border: 1px solid gray; background-color: #fbfdff;\">";
  var tb1= "</td></tr>";

  document.write(span0+tbl0+tb0+tb1+tbl1+span1);
}

////
function popup(n,i){
  var str= ftrshow(n,i);
  var obj= document.getElementById("infob");
  obj.innerHTML= str;

  var obj= document.getElementById("infos");
  obj.style.visibility= "visible";
}

function ftrshow(n,i){
  var fobj= mapfrm.ftrobj[n].mem[i];
  var str= "";
  var opt= "'"+n+"',"+i+"";

  str+= "<img src=\""+fobj.src+"\" width=\"24\" height=\"24\" "
  str+= "onclick=\"javascript: migratemapftr("+opt+");mapfrm.eftrsetex("+opt+");\">";
  str+= "<b><font size=\"+2\" color=\"#0000c0\">"+fobj.title+"</font></b>";
  str+= "<div style=\"float: right;\" onclick=\"javascript: clearinfo("+opt+");\"><font size=\"-1\" color=\"#0000ff\">[閉じる]</font></div><br>";

  return str;
}

function clearinfo(n,i){
  var obj= document.getElementById("infob");
  setinnerhtml(obj,"");

  var obj= document.getElementById("infos");
  obj.style.visibility= "hidden";
}

////
function migratemapftr(n,i){
  popup(n,i);

  var lat= mapfrm.ftrobj[n].mem[i].lat;
  var lng= mapfrm.ftrobj[n].mem[i].lng;

  mapfrm.drift(lat,lng);
}
