/*------------------------------------------------
【住所検索機能】
■cssの記述
@import url("../../common/css/serachaddress.css");

■htmlの記述
//<head>部
<script type="text/javascript" src="../common/js/prototype.js"></script>
<script type="text/javascript" src="../common/js/searchaddress.js"></script>

//<body>部
<form action="#" onsubmit="searchaddress(1);return false;">
    <select id="selAza">
        <?php require("../common/html/aza_pc.html"); ?> //字リストhtmlの読み込み
    </select>
    <input id="inpBangou" type="text" name="">
    <input id="inpSub" type="submit" name="" value="検索">
</form><div id="searchresult"></div>

■属性値
・form：id属性なし,action属性action="#"を指定
・字名選択selectボックス：id="selAza"を指定
・番号入力inputボックス：id="inpBangou"を指定
・検索subumitボタン：id="inpSub"を指定（未使用だが…）
・結果表示div：id="searchresult"を指定

■javascript
・form：onsubmit="searchaddress(1);return false;"を記述
------------------------------------------------*/

var searchaddressURL = "../common/php/serachaddress.php"

function closesearchresult() {
    var sres = $('searchresult');
    sres.innerHTML = '';
    sres.style.visibility = 'hidden';
}

function searchaddress(pagenum) {
    var sres = $('searchresult');
    var html = "";

    var selAza = $('selAza');
    var inpBangou = $('inpBangou');
    var retxy = Position.cumulativeOffset(inpBangou); 
    var retheight = Element.getHeight(inpBangou);
    sres.style.left = retxy[0];
    sres.style.top = retxy[1] + retheight + 1;

//searching ...
    var searchinghtml = '<img id="searchingimg" src="../common/img/searching.gif" alt="検索中...">';
    Element.update(sres,searchinghtml);
    sres.style.border = "0px solid #FFFFFF";
    sres.style.visibility = 'visible';
//searching ...

//aerophotostatus
    var aerophotostatus = getaerophotostatus();
//aerophotostatus
//mapname
    var mapname = getmapname();
//mapname

    // ここでJavaScript側の入力値チェックを行う。
    if (!(checkBangou(inpBangou))) {
        html = '<div id="searchresultbody">';
        html += '<a href="javascript:void(null);" onclick="closesearchresult();"><img align="right" src="../common/img/close.gif" border="0" alt="閉じる"></a>検索結果</div>';
        html += '検索結果がありません。';
        sres.innerHTML = html;
        return false;
    }

    azaCD = selAza.options[selAza.selectedIndex].value;
    bangou = inpBangou.value;

    new Ajax.Request(searchaddressURL, {
        method: "get",
        parameters: "a=" + azaCD + "&b=" + bangou + "&p=" + pagenum,
        requestHeaders: ['If-Modified-Since','Wed, 15 Nov 1995 00:00:00 GMT'],
        onSuccess: function(httpObj) {
                var xmlDoc = httpObj.responseXML;
                html = '<div id="searchresultbody">';
                html += '<a href="javascript:void(null);" onclick="closesearchresult();"><img align="right" src="../common/img/close.gif" border="0" alt="閉じる"></a>検索結果</div>';
                var count = xmlDoc.documentElement.getElementsByTagName("count")[0].firstChild.nodeValue;
                var address = xmlDoc.documentElement.getElementsByTagName("address");
                var name = xmlDoc.documentElement.getElementsByTagName("name");
                var bangou = xmlDoc.documentElement.getElementsByTagName("bangou");
                var x = xmlDoc.documentElement.getElementsByTagName("x");
                var y = xmlDoc.documentElement.getElementsByTagName("y");

                html += '<div class="resultcount">' + count + '件です。</div>';   // <br>'
                for(i = 0 ; i < address.length ; i++){
                    addressvalue = address[i].firstChild.nodeValue;
                    namevalue = name[i].firstChild.nodeValue;
                    bangouvalue = bangou[i].firstChild.nodeValue;
                    xvalue = x[i].firstChild.nodeValue;
                    yvalue = y[i].firstChild.nodeValue;
                    //html += '<a href="map.php?cmd=coords&amp;x=' + xvalue + '&amp;y=' + yvalue + '&amp;aerophotostatus=' + aerophotostatus + '&amp;addressname=' + encodeURIComponent(namevalue + bangouvalue) + '" class="result">' + addressvalue + '</a>';
                    html += '<a href="map.php?cmd=coords&amp;x=' + xvalue + '&amp;y=' + yvalue + '&amp;aerophotostatus=' + aerophotostatus + '&amp;mapname=' + mapname + '&amp;addressname=' + encodeURIComponent(namevalue + bangouvalue) + '" class="result">' + addressvalue + '</a>';
                }
                if(count < 1) {
                    desc = xmlDoc.documentElement.getElementsByTagName("description")[0].firstChild.nodeValue;
                    html += desc;
                }
                if(count > 10) {
                    pages = Math.floor(count / 10);
                    prevpage = pagenum - 1;
                    nextpage = pagenum + 1;
                    if((count % 10) > 0){
                        pages++;
                    }
                    html += '<div class="pager">';
                    if(pagenum > 1) {
                        html += '<a href="javascript:searchaddress(1);" title="最初のページ">&lt;&lt;</a>&nbsp;<a href="javascript:searchaddress(' + prevpage + ');" title="前のページ">&lt;</a>';
                    }
                    html += '&nbsp;' +  pagenum + '/' + pages + '&nbsp;page&nbsp;';
                    if(pagenum < pages) {
                        html += '<a href="javascript:searchaddress(' + nextpage + ');" title="次のページ">&gt;</a>&nbsp;<a href="javascript:searchaddress(' + pages + ');" title="最後のページ">&gt;&gt;</a>';
                    }
                    html += '</div>';
                }
                sres.style.border = "1px solid #C0C0C0";
                Element.update(sres,html);
                sres.style.visibility = 'visible';
        },
        onFailure: function() {
            html = '<div id="dmenubody" style="background-color:#F5F5F5;text-align:right;">';
            html += '<a href="javascript:" onclick="closesearchresult();"><img src="./img/close.gif" border="0" alt="閉じる"></a></div>';
            html += 'HttpRequest Error!' + '(' + searchaddressURL + ')';
            sres.style.border = "1px solid #C0C0C0";
            Element.update(sres,html);
            sres.style.visibility = 'visible';
        }
    });
}



// 番ー号のテキスト入力値のチェック
function checkBangou(obj){

    var retval = false;
    var value = obj.value;
    if (value == '') {
        retval = false;
    } else {

        // デリミタ文字'-'があるかどうかチェック
        var del = value.indexOf('-');

        // banのみ
        if (del <= 0) {
            if (checkNumber(value) == 0) {
                retval = false;
            } else {
                retval = true;
            }
        // ban-gou
        } else {
            // 以降に'-'が含まれていないか確認
            if (value.indexOf('-', del+1 ) > 0 ) {
                retval = false;
            } else {
                ban = value.substring(0, del);
                gou = value.substring(del+1, value.length);
                if (checkNumber(ban) == 0) {
                    retval = false;
                } else {
                    retval = true;
                }
                if (checkNumber(gou) == 0) {
                    retval = false;
                } else {
                    retval = true;
                }
            }
        }
    }

    return retval;

}

// 数字列のチェック 数字でないものがあれば0が返る
function checkNumber(num){
  for(var i=0;i<num.length;i++){
    if(isNaN(parseInt(num.charAt(i),10))) return 0;
  }
  if(parseInt(num,10)<=0) return 0;
  return num.length;
}

// 航空写真の表示状態（on/off）取得 
function getaerophotostatus() {
    var aerophotostatus = 0;
    if($('aerophoto')) {
        if($('aerophoto').checked) {
            aerophotostatus = 1;
        }
    }
    return aerophotostatus;
}
// 選択マップファイル取得 
function getmapname() {
    var mapname = "";
    if ($('selMap')){
        var selMap = $('selMap');
        mapname = selMap.options[selMap.selectedIndex].value;
    }
    
    return mapname;
}
