var schr = "UTF-8";
var hiragana = new Array("あ","い","う","え","お","ぁ","ぃ","ぅ","ぇ","ぉ","か","き","く","け","こ","さ","し","す","せ","そ","た","ち","つ","て","と","な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ","ま","み","む","め","も","や","ゃ","ゆ","ゅ","よ","ょ","ら","り","る","れ","ろ","わ","を","ん","が","ぎ","ぐ","げ","ご","ざ","じ","ず","ぜ","ぞ","だ","ぢ","づ","で","ど","ば","び","ぶ","べ","ぼ","ぱ","ぴ","ぷ","ぺ","ぽ","ゐ","ゑ");
var kakakana = new Array("ア","イ","ウ","エ","オ","ァ","ィ","ゥ","ェ","ォ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ャ","ユ","ュ","ヨ","ョ","ラ","リ","ル","レ","ロ","ワ","ヲ","ン","ガ","ギ","グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ","ヰ","ヱ");
var hankaku  = new Array("ｱ","ｲ","ｳ","ｴ","ｵ","ｧ","ｨ","ｩ","ｪ","ｫ","ｶ","ｷ","ｸ","ｹ","ｺ","ｻ","ｼ","ｽ","ｾ","ｿ","ﾀ","ﾁ","ﾂ","ﾃ","ﾄ","ﾅ","ﾆ","ﾇ","ﾈ","ﾉ","ﾊ","ﾋ","ﾌ","ﾍ","ﾎ","ﾏ","ﾐ","ﾑ","ﾒ","ﾓ","ﾔ","ｬ","ﾕ","ｭ","ﾖ","ｮ","ﾗ","ﾘ","ﾙ","ﾚ","ﾛ","ﾜ","ｦ","ﾝ","ｶﾞ","ｷﾞ","ｸﾞ","ｹﾞ","ｺﾞ","ｻﾞ","ｼﾞ","ｽﾞ","ｾﾞ","ｿﾞ","ﾀﾞ","ﾁﾞ","ﾂﾞ","ﾃﾞ","ﾄﾞ","ﾊﾞ","ﾋﾞ","ﾌﾞ","ﾍﾞ","ﾎﾞ","ﾊﾟ","ﾋﾟ","ﾌﾟ","ﾍﾟ","ﾎﾟ","ｲ","ｴ");
var youbi = new Array("日","月","火","水","木","金","土");
var TL2 = new Array("011","044","052","075","050","080","090")
var TL3 = new Array("012","013","014","015","016","049","057","059","074","083","084","085","086","094","098","099");
var Ban1 = new Array("１","２","３","４","５","６","７","８","９","０","ー");
var Ban2 = new Array("1","2","3","4","5","6","7","8","9","0","-");
var Alf1 = new Array("ａ","ｂ","ｃ","ｄ","ｅ","ｆ","ｇ","ｈ","ｉ","ｊ","ｋ","ｌ","ｍ","ｎ","ｏ","ｐ","ｑ","ｒ","ｓ","ｔ","ｕ","ｖ","ｗ","ｘ","ｙ","ｚ","Ａ","Ｂ","Ｃ","Ｄ","Ｅ","Ｆ","Ｇ","Ｈ","Ｉ","Ｊ","Ｋ","Ｌ","Ｍ","Ｎ","Ｏ","Ｐ","Ｑ","Ｒ","Ｓ","Ｔ","Ｕ","Ｖ","Ｗ","Ｘ","Ｙ","Ｚ","＠","．","－","＿","：","；","｜");
var Alf2 = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","@",".","-","_",":",";","|");
var NB;
/**漢字からふりがな検索*/
function FRI_Fgt(x, y ,z) {
  NB = z;
  NC = y;
  var w = document.getElementById(x).value;
  if (w == "") { document.getElementById(NC).value = ""; return; }
  var ntr = document.createElement("script");
  ntr.src = "http://pipes.yahoo.com/pipes/pipe.run?_id=a2c2d57eff6b200fbf7f7d16a8a7af50&sentence=" + encodeURI(w) + "&_render=json&_callback=KTC2_callback";
  document.body.appendChild(ntr);
}
function FRI_Rel(x, y ,z) {
  if (document.getElementById(y).value == "" && document.getElementById(x).value != "") FRI_Fgt(x, y ,z);
}
function KTC2_callback(data) {
  var n; var m; var i; var hw="";
  for (i=0; i<data.value.items.length; i++) {
    if(data.value.items[i].content){
      hw += data.value.items[i].content;
    }
  }
  if (NB > 0) {
    for (i=0; i<hiragana.length; i++) {
      n = new RegExp(hiragana[i],"g");
      m = hankaku[i];
      if (NB == 1) m = kakakana[i];
      hw = hw.replace(n, m);
    }
  }
  document.getElementById(NC).value = hw;
}

listMode = 1;  //一覧リストからどれか選んだと同時にリストを非表示にする場合は値を 1 にする。
function searchByZipCode(x) {
  if (x == 0) {
    x = document.getElementById('zip1').value + '' + document.getElementById('zip2').value;
  }
  form_Send(x,'zipcode');
}
function searchZipByAddress() {
  document.getElementById('codes').innerHTML = "";
  var z = document.getElementById('town').value;
  z = document.getElementById('prefecture').options[document.getElementById('prefecture').selectedIndex].value + '' + document.getElementById('city').value + '' + z;
  z = z.replace(/[0-9０-９]/,"###");
  y = z.split("###");
  y[0] = y[0].replace(/ |　/g,"");
  form_Send(y[0],'word');
}
function form_Send(x,v) {
  var sp = document.createElement('script');
  var os = navigator.userAgent;
  sp.charset = schr;
  sp.src = 'http://groovetechnology.co.jp/ZipSearchService/v1/zipsearch?' + v + '=' + encodeURIComponent(x) + '&callback=callback1&oe=' + schr;
  document.body.appendChild(sp);
}
function callback1(data) {
  var html = '<ul>';
  j = 0;
  NN = new Array; NA = new Array; NF = new Array;
  for (var i in data.zipcode) {
    NN[j] = data.zipcode[i].zipcode;
    NA[j] = data.zipcode[i].prefecture + ' ' + data.zipcode[i].city + ' ' + data.zipcode[i].town;
    NF[j] = data.zipcode[i].prefecture_yomi + ' ' + data.zipcode[i].city_yomi + ' ' + data.zipcode[i].town_yomi;
    html += '<li><a href="javascript:{form_Ziponly(' + j + '); formReplace(' + j + '); }">' + NN[j] + " " + NA[j] + '</a>\r\n';
    j++;
  }
  for (var i in data.office) { }
  html += "</ul>\r\n";
  document.getElementById('listButton').style.display = "inline";
  document.getElementById('codes').style.display = "block";
  document.getElementById('codes').innerHTML = html;
  if (i > 10) {
    document.getElementById('codes').style.height = "160px";
    document.getElementById('codes').style.overflow = "auto";
    if (!document.all) document.getElementById('codes').style.height = "200px";
  } else {
    document.getElementById('codes').style.height = "12px";
    document.getElementById('codes').style.overflow = "visible";
    if (!document.all || window.opera) document.getElementById('codes').style.height = (j * 16 + 20) + "px";
  }
}
function form_Ziponly(x) {
  document.getElementById('zip1').value = NN[x].substr(0,3);
  document.getElementById('zip2').value = NN[x].substr(3,4);
}
function formReplace(x) {
  var B = document.getElementById('town').value;
  D = "";
  for (i=0; i<B.length; i++) {
    var C = B.substr(i,1);
    if (C.match(/[0-9０-９]/)) {
      D = B.substr(i,B.length - i);
      break;
    }
  }
  if (D != "") {
    NA[x] = NA[x].replace(/[0-9０-９]/,"###");
    y = NA[x].split("###");
    NA[x] = y[0];
  }
  var E = NA[x].replace(/以下に掲載がない場合/g,"");
  E = E.replace(/（.*?）/g,"");
  var F = NF[x].replace(/イカニケイサイガナイバアイ/g,"");
  F = F.replace(/（.*?）/g,"");
  TT = E.split(" ");
  TK = F.split(" ");
  for(i=0; document.getElementById('prefecture').length; i++){
    var val = document.getElementById('prefecture').options[i].value;
    if(val==TT[0]){
      document.getElementById('prefecture').selectedIndex = i;
      document.getElementById('prefectureKana').value = TK[0];
      break;
    }
  }
  document.getElementById('city').value = TT[1];
  document.getElementById('cityKana').value = TK[1];
  document.getElementById('town').value = TT[2] + D;
  document.getElementById('townKana').value = TK[2] + D;

  document.getElementById('number').focus();
  if (listMode == 1) form_addList();
}
function form_addList() {
  if (listMode == 1) {
    document.getElementById('codes').style.display = "none";
    document.getElementById('listButton').firstChild.value = "一覧表示";
    listMode = 0;
  } else {
    document.getElementById('codes').style.display = "block";
    document.getElementById('listButton').firstChild.value = "一覧非表示";
    listMode = 1;
  }
}

//起動時にtextboxの背景色を変える
function init(){
  var _inObj = YAHOO.util.Dom.getElementsBy(function(x){return true;},'input');
  for(var i = 0; i < _inObj.length; i++){
    if(_inObj[i].getAttribute('type') == 'text'){
      YAHOO.util.Dom.addClass(_inObj[i], "text");
    }
  }
}
YAHOO.util.Event.onDOMReady(init);
