// ASBNによりAWS検索リクエストを実行し、Javascriptによる成型版の結果を出力する。
// INP:ASBN Amazon統一商品コード(書籍の場合はISBNと同じ）
// このスクリプトはhttp://mattn.kaoriya.net/software/lang/javascript/20080605165643.htmの記事を
// 参考に（ほとんどパクリですが。。。）作成されています。
//

function func1(kind,Title) {
//alert("aaa");
  var xmlHttpReq = createHttpRequest();


  var filename = "";

  if (kind == 'C') {
    filename = ".\/dat\/Impression_C.xml";
  } else if (kind == 'N') {
    filename = ".\/dat\/Impression_N.xml";
  } else if (kind == 'A') {
    filename = ".\/dat\/Impression_A.xml";
  } else if (kind == 'G') {
    filename = ".\/dat\/Impression_G.xml";
  } else {
    document.getElementById("Impression").innerHTML = "";
    return;
  }

  xmlHttpReq.open("GET", filename ,true) 

  xmlHttpReq.onreadystatechange = function() { 

    if (xmlHttpReq.readyState==4) { 
      var resultStr = ""; 
      var xmlData = xmlHttpReq.responseXML; 
             
      var entry= xmlData.getElementsByTagName("Entry"); 
      var ttl= xmlData.getElementsByTagName("Title"); 
      var impre = xmlData.getElementsByTagName("Impre"); 
      var star = xmlData.getElementsByTagName("Star"); 

      for (var i = 0 ;i<entry.length ;i++) { 
        if (ttl[i].childNodes[0].nodeValue == Title) {
          resultStr = "<div id=\"Impre\" style=\"border: 1px dotted black; margin: 0.5em; padding: 0.5em; background-color: rgb(238, 238, 238);\">";
          resultStr += impre[i].childNodes[0].nodeValue + "<br \/><br \/>";
          resultStr += "私のオススメ度：" + star[i].childNodes[0].nodeValue + "<br \/><div class=\"text1ngry\">※感想・オススメ度はあくまで私の主観であり、すべての方々に適合するものではありません。あくまで目安としてご覧ください。<\/div>";
          document.getElementById("Impression").innerHTML = resultStr;
          break;
        } 
      }
    } 
  } 
  xmlHttpReq.send(null);
}

function func2(ASBN) {
  var unsanitize = function(text) {
    return (text||'').replace(/&amp;/g, '&').replace(/&gt;/g, '>').replace(/&lt;/g, '<');
  }
    if (!$('#aws-word').val()) {
      $('#aws').html('');
      return;
    }
    $('#aws').html('<img src="http://qtanoehon.net/pics/ajax-loader.gif"/>');
	$.ajaxSettings.cache = true;
    $.getJSON('http://xml-jp.amznxslt.com/onca/xml?callback=?',
      {
        Service: 'AWSECommerceService',
        SubscriptionId: '1EH0ZP2MS4K0782PZWR2',
        AssociateTag: 'qtanoehon-22',
        Operation: 'ItemLookup',
        ResponseGroup: 'Medium,Offers,Reviews',
        Version: '2005-10-05',
        ItemId: ASBN,
        ContentType: 'text/plain',
        Style: 'http://qtanoehon.net/aws2json.xsl'
      }, function(data) {
        $('#aws').html('');
        $.each(data.result, function(index, item) {
          $('<div>')
            .css('border', '1px dotted black')
            .css('border', '1px dotted black')
            .css('background-color', '#eeeeee')
            .css('padding', '0.5em')
            .css('margin', '0.5em')
            .attr('id', 'aws' + index)
            .hide()
            .appendTo('#aws');
          var c = $('#aws' + index);
      $('<a/>')
        .appendTo(c)
        .attr('href', item.url)
            .text(unsanitize(item.title))
            .appendTo(c);
          var a = $('a', c);
          if (item.image.medium) {
            $('<img>')
              .css('vertical-align', 'top')
              .css('padding', '0.5em')
              .css('border', '0px')
              .css('float', 'left')
              .attr('title', item.title)
              .attr('src', item.image.medium.src)
              .prependTo(a);
          }
          a.after('<br />');

          $.each(item.authors, function(index, item) {
            $('<b>')
              .text(item)
              .appendTo(c)
              .after('<br />');
          });
          $('#aws' + index)
            .append('<span>ASIN: ' + item.asin + '</span>')
            .append('<br />')
            .append('<br />')
            .append(item.publisher + '/' + item.price + ' (' + item.date + ')')
            .append('<br />')
            .append(item.availability);
          $(c).append('<br clear="all" /><br />');
          if (item.reviews.length) {
            $('<a href="#">review comments</a>')
              .css('font-size', 'small')
              .css('color', 'blue')
              .appendTo(c)
              .click(function() { $('.reviews', c).toggle('slow'); return false; });
            $('<div>')
              .attr('class', 'reviews')
              .css('display', 'none')
              .css('font-size', 'small')
              .appendTo(c);
            $.each(item.reviews, function(index, item) {
              $('.reviews', c)
                .append('<span class="name"><strong>' + item.summary + '</strong></span><br />')
                .append('<div class="comment">' + unsanitize(item.content) + '</div>')
                .append('<br />');
              $('.comment', c)
                .css('border', '1px dotted gray')
                .css('background-color', 'white')
                .css('padding', '0.5em')
            });
          }
        });
        $('div', '#aws').fadeIn('slow', function() {
          $('.reviews').hide();
        });
      }
  );

}

function createHttpRequest() { 
    var x = null; 

    //IE7,Firefox, Safari 
    if (window.XMLHttpRequest) { 
        return new XMLHttpRequest(); 
    } 

    //IE6 
    try { 
        return new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch(e) { 
        // IE5 
        try { 
            return new ActiveXObject("Microsoft.XMLHTTP"); 
        } catch(e) { 
            x = null; 
        } 
    } 
    return x; 
}