// ==UserScript==
// @name          Tsukuba Public Library Lookup from Amazon book listings - Eng Ver.
// @namespace     http://www.amazon.co.jp
// @description   Tsukuba Public Library Lookup from Amazon book listings - Eng Ver.
// @include       http://*.amazon.*
// ==/UserScript==

// Version 20070823

libsearch(
  'http://www.city.tsukuba.ibaraki.jp/lib/iliswing/opac/kensakucheck.jsp?kensaku.x=68&kensaku.y=9&sryskb0=1&allsryskb0=1&sryskb1=2&allsryskb1=2&sryskb2=3&allsryskb2=3&sryskb_length=3&taisyokan1=0&kanmei_length=6&max_kensu=10&KSKNO1=120&ITTI1=1&f_kanzen1=0&ANDOR2=0&KSKNO2=004&KEYWORD2=&ITTI2=1&f_kanzen2=0&ANDOR3=0&KSKNO3=005&KEYWORD3=&ITTI3=0&f_kanzen3=0&ANDOR4=0&KSKNO4=010&KEYWORD4=&ITTI4=0&f_kanzen4=0&siborikomi=040&hanni1=&hanni2=&KEYWORD1=',
  'Tsukuba Public Library'
);

function libsearch( api, title ) {
  // get ISB10
  document.body.parentNode.innerHTML.match( /\s((\d{9})[\dX])/ );
  var isbn = '';
  if ( RegExp.$1!='' ) {
    isbn = RegExp.$1

  // get ISB13
  } else {
    document.body.parentNode.innerHTML.match( /\s(978\-(\d{9})[\dX])/ );
    if ( RegExp.$1!='' ) {
      isbn = RegExp.$1
    }
  }

  // check library
  var header = document.getElementById('primaryUsedAndNew');
  if ( header ) {
    if ( isbn ) {
      checkLibrary( api, title, isbn, header );
    } else {
      makelink( api, title, '', header, 0 );
    }
  }
}

function checkLibrary( api, title, isbn, header ) {
  GM_xmlhttpRequest(
    {
      method  : "GET",
      url     : api + isbn ,
      headers : {
                  'User-Agent'  : 'Mozilla/4.0 (compatible) Greasemonkey',
                  'Content-type': 'application/x-www-form-urlencoded'
                },
      onload  : function( response ) {
                  makelink( api, title, isbn, header, response.responseText.match(/itiranview.jsp/) );
                }
    }
  );
}

function makelink( api, title, isbn, header, foungflg ) {
  var msg = ( foungflg ) ? '<br /><span style=\"font-size:14px; color:#ffffff; background-color:#ff0000;\"> &raquo; [<b>AVAILABLE!</b>] <br>Go to Search Result for ' + title + '</span>' : '<br /><span style=\"font-size:14px; color:#ffffff; background-color:#0000ff;\"> &raquo; [<b>Not available...</b>] <br>Go to Search Result for ' + title + '</span>';
  var spl_link = document.createElement( 'a' );
  spl_link.setAttribute( 'target', '_blank' );
  spl_link.setAttribute( 'href', api + isbn );
  spl_link.setAttribute( 'title', 'To Tsukuba Public Library' );
  spl_link.innerHTML = msg;
  header.parentNode.insertBefore( spl_link, header.nextSibling );
}


