
//--------設定--------
var arb_convFlag = new Array(1, 1, 1, 1);  //モードフラグ(1,2,3) ひらがな→0　カタカナ→1
var arb_nameField = new Array('apply_name_sei', 'apply_name_mei','big_apply_name_knj','big_apply_name_knj2');  //名前(1,2,3) のID
var arb_rubyField = new Array('apply_name_kana_sei', 'apply_name_kana_mei','big_apply_name_kana','big_apply_name_kana2');  //カナ(1,2,3) のID
//--------------------

  var arb_baseVal = new Array();
  var arb_beforeVal = new Array();
  for (i=0; i<arb_convFlag.length; i++) { arb_baseVal[i] = arb_beforeVal[i] = ""; }
  var arb_selectNum = false;
  var arb_setTimer = false;
  var arb_keyCode = 0;
  function ARB_setRuby(x, e) {
    arb_selectNum = x;
    var n = document.getElementById(arb_nameField[x]).value;
    if (n == "") {
      document.getElementById(arb_rubyField[x]).value = "";
      arb_baseVal[x] = "";
      return;
    }
    if (e && (e == 8 || e == 46 || e == 40)) {
      ARB_getRubyAPI(n, x);
      return;
    }
    if (arb_baseVal[x] == n) return;
    var a = n;
    for(var i=arb_baseVal[x].length; i>=0; i--) {
      if (n.substr(0,i) == arb_baseVal[x].substr(0,i)) {
        a = n.substr(i);
        break;
      }
    }
    arb_baseVal[x] = n;
    if (a.match(/[^ 　ぁあ-んァー]/)) return;
    var flg = 0;
    if (a.match(/^[あ-ん]$/)) {
      if (arb_beforeVal[x] == a) flg = 1;
      arb_beforeVal[x] = a;
    }
    if (arb_convFlag[x]) a = ARB_convKana(a);
    var q = document.getElementById(arb_rubyField[x]).value.slice(-1 * a.length);
    if (flg == 0 && q == a) return;
    document.getElementById(arb_rubyField[x]).value += a;
  }

  function ARB_loopTimer(x) {
    if (x) arb_selectNum = x - 1;
    ARB_setRuby(arb_selectNum);
    arb_setTimer = setTimeout("ARB_loopTimer()",30);
  }

  function ARB_convKana(val) {
    var c, a = [];
    for(var i=val.length-1;0<=i;i--){
      c = val.charCodeAt(i);
      a[i] = (0x3041 <= c && c <= 0x3096) ? c + 0x0060 : c;
    }
    return String.fromCharCode.apply(null, a);
  }

  function ARB_addEvent(ev) {
    var c = 0;
    for (var j=0; j<arb_nameField.length; j++) {
      if (ev == arb_nameField[j]) {
        ARB_loopTimer(j + 1);
        c++;
      }
    }
    if (c == 0) clearTimeout(arb_setTimer);
  }

  if (document.addEventListener) {
    document.addEventListener('click', function(e) { ARB_addEvent(e.target.id); }, false);
    document.addEventListener('keydown', function(e) { ARB_addEvent(e.target.id); }, false);
    document.addEventListener('focus', function(e) { ARB_addEvent(e.target.id); }, false);
  } else {
    document.attachEvent('onclick', function(){ ARB_addEvent(event.srcElement.id); });
    document.attachEvent('onkeydown', function(){ ARB_addEvent(event.srcElement.id); });
    document.attachEvent('onfocus', function(){ ARB_addEvent(event.srcElement.id); });
  }

  function ARB_getRubyAPI(w, p) {
    arb_selectNum = p;
    var ntr = document.createElement("script");
    ntr.src = "kts2.php?url=" + encodeURI(w) + "&cset=utf-8";
    document.body.appendChild(ntr);
  }

  function KTS2_callback(data) {
    var w = data.result;
    if (arb_convFlag[arb_selectNum]) w = ARB_convKana(w);
    document.getElementById(arb_rubyField[arb_selectNum]).value = w;
  }

