// isbncheck: ISBN13 validation checker for javascript
// generated by femc.org
// ver 0.1 2005/08/07 test ver window.alertつき
// ver 1.0 2005/08/08 window.alertなし-チェック

function chkisbn() {
  var isbno = document.isbn.num.value.replace(/ /g,'');
  var isbnolen = isbno.length;
  var isbnhead = document.isbn.isbnhead.value;
if(isbno.match(/-/g)){
  isbnomatch = (isbno.match(/-/g)).length;
}else{
isbnomatch = '0';
}
  isbnw = isbno.replace(/-/g, '');
  if (isbnw.length < 9) {
    window.alert('ISBN length short');
    return;
  }
  else if (isbnw.length > 10) {
    window.alert('ISBN length over');
    return;
}
  isbnw = isbnhead + isbnw;

  var isbn1 = isbnw.charAt(0);//1桁目
  var isbn2 = isbnw.charAt(1);//2桁目
  var isbn3 = isbnw.charAt(2);//3桁目
  var isbn4 = isbnw.charAt(3);//4桁目
  var isbn5 = isbnw.charAt(4);//5桁目
  var isbn6 = isbnw.charAt(5);//6桁目
  var isbn7 = isbnw.charAt(6);//7桁目
  var isbn8 = isbnw.charAt(7);//8桁目
  var isbn9 = isbnw.charAt(8);//9桁目
  var isbn10 = isbnw.charAt(9);//10桁目
  var isbn11 = isbnw.charAt(10);//11桁目
  var isbn12 = isbnw.charAt(11);//12桁目

//奇数桁を足す
  var odd = eval(isbn1) + eval(isbn3) + eval(isbn5) + eval(isbn7) + eval(isbn9) + eval(isbn11);
//偶数桁を足す
  var even = eval(isbn2) + eval(isbn4) + eval(isbn6) + eval(isbn8) + eval(isbn10) + eval(isbn12);

  var digitval = odd + (even * 3);//偶数桁に3かけて奇数桁との合計
  digitval = digitval.toString();
  digitval = digitval.substr(-1,1);//1の位を取り出す
  digitval = 10 - digitval;//10から1の位を引く
  if (digitval == 10) {//10なのでチェックデジットは0
    digitval = '0';
  }

  var digit = isbnw.charAt(12);//13桁目
  var MSGCHK = "CHECK start";
  var MSGOK = "ISBN is OK";
  var MSGFAIL = "ISBN is failed";
  if (digit == '') {
    document.isbn.message.value = MSGCHK;
  }else {
    if (digit == digitval) {
      document.isbn.message.value = MSGOK;
    }else {
      document.isbn.message.value = MSGFAIL;
    }
  }
  if (isbnomatch == '0'){//-がない場合
    if (isbnolen == '9'){//12桁であればdigitをくっつけるだけ
    isbnval = isbnhead + isbno + digitval;
    }else{//13桁であれば12桁だけ抜いてdigitをくっつけるだけ
    isbno = isbno.substr(0,9);
    isbnval = isbnhead + isbno + digitval;
    }
  }else if(isbnomatch == '3'){//-が3つの場合
    isbno = isbno.substr(0,11);//-込みで12桁抜く
    isbnval = isbnhead + '-' + isbno + '-' + digitval;//-とdigitをくっつける
  }else if(isbnomatch == '2'){//-が2つの場合
    isbnval = isbnhead + '-' + isbno + '-' + digitval;//-とdigitをくっつける
  }
  document.isbn.isbnval.value = isbnval;
}

