﻿// shopdata.php, product_** で非同期でリクエスト アマゾン、ヤフー
var ourcategory = "";
var ourkeyword = "";

function sideProducts()
{
  if(mycmd == "Y") {
    myurl = "_get_cache.php?myurl=" + myurl
    myurl += "&cache="+(new Date()).getTime();
    new Ajax.Request(myurl, { method: 'get', onComplete: displayYahooShoppingSide, onFailure: displayFailureY });
    $("leftresultY").innerHTML = '<div class="product_total">Searching for products...</div>';
  } else if(mycmd == "A") {
    myurl = "_get_cache.php?myurl=" + myurl
    myurl += "&cache="+(new Date()).getTime();
    new Ajax.Request(myurl, { method: 'get', onComplete: displayAmazonSide, onFailure: displayFailureA });
    $("leftresultA").innerHTML = '<div class="product_total">Searching for products...</div>';
  }
}

function clearRefinements()
{
  $("refinements2").innerHTML = '<input type="hidden" name="myrefinements" value="" />';
}

function yahooShopping(mypage)
{
  var myForm = document.getElementById("myFormY");
  var mycatalogcode = myForm.mycatalogcode.value;
  var mycategory = myForm.mycategory.value;
  var mymerchantid = myForm.mymerchantid.value;
  var mykeyword = myForm.mykeyword.value;
  if(mycmd == "refinements"){
    var myrefinements = myForm.myrefinements.value;
    for (i = 0; i < myForm.elements.length; i++ ) {
      if (myForm.elements[i].type == "checkbox" ) {
        if (myForm.elements[i].checked == true) {
          myrefinements += myForm.elements[i].value + ",";
        }
      }
    }
    if(myrefinements != ""){
      myrefinements = myrefinements.substring(0,myrefinements.length-1);
    }
  }

  var url = "_get_yahoo_shopping.php?myLocale=US";
  if(mycategory != ""){
    url += "&mycategory="+encodeURI(mycategory);
    ourcategory = mycategory;
  }
  if(mycatalogcode != ""){
    url += "&mycatalogcode="+encodeURI(mycatalogcode);
  }
  if(mymerchantid != ""){
    url += "&mymerchantid="+encodeURI(mymerchantid);
  }
  if(mykeyword != ""){
    url += "&myquery="+encodeURI(mykeyword);
    ourkeyword = mykeyword;
  }
  if(mypage){
    url += "&mypage="+encodeURI(mypage);
  }
  if(myrefinements != ""){
//    url += "&myrefinements="+encodeURI(myrefinements);
    url += "&myrefinements="+myrefinements;
  }
  url += "&cache="+(new Date()).getTime();
  new Ajax.Request(url, { method: 'get', onComplete: displayYahooShopping, onFailure: displayFailureY });
  $("resultY").innerHTML = '<div class="product_total">Searching for products...</div>';
  if(mycmd == "refinements"){
    if(myrefinements != ""){
      $("refinements2").innerHTML = '<input type="hidden" name="myrefinements" value="' + myrefinements + '," />';
    } else {
      $("refinements2").innerHTML = '<input type="hidden" name="myrefinements" value="" />';
    }
    document.getElementById("refinements").style.display = 'none';
  }
  document.getElementById("resultbottom").style.display = 'none';
}

function displayYahooShopping(httpObj)
{
  var txt = "";
  var check_row = 0;
  var xmlData = httpObj.responseXML;
  var Products = xmlData.getElementsByTagName("Products");
  var totalResultsAvailable = Products[0].getAttribute("totalResultsAvailable");
  var firstResultPosition = Products[0].getAttribute("firstResultPosition");
  var mypage = (firstResultPosition - 1) / 10 + 1;
  var lastpage = totalResultsAvailable / 10;
  if(mycmd != "Y") {
    txt += '<div class="product_total">Search Result <b>' + totalResultsAvailable + '</b> products.</div>\n';
    if(totalResultsAvailable > 0) {
      txt += '<p class="page">\n';
      if(mypage > 1) {
        for (var i=4; i>0; i--) {
          var mypage2 = mypage - i;
          if(mypage2 > 0){
            txt += '<a href="javascript:yahooShopping(\'' + mypage2 + '\');" class="page">' + mypage2 + '</a>';
          }
        }
      }
      txt += '<font class="page">' + mypage + '</font>';
      if(mypage < lastpage){
        for (var i=1; i<5; i++) {
          var mypage2 = mypage + i;
          if(mypage2 < lastpage){
            txt += '<a href="javascript:yahooShopping(\'' + mypage2 + '\');" class="page">' + mypage2 + '</a>';
          }
        }
      }
      txt += '</p>\n';
    }
  } else if(totalResultsAvailable > 0) {
    document.getElementById("resulttop").style.display = '';
    document.getElementById("resultbottom").style.display = '';
  }
  txt += '<table border="0" cellpadding="0" cellspacing="0" width="625">\n';
  txt += '<tr>\n';
  txt += '<td><img src="image/shim.gif" width="100" height="1" border="0"></td>\n';
  txt += '<td><img src="image/shim.gif" width="210" height="1" border="0"></td>\n';
  txt += '<td><img src="image/shim.gif" width="5" height="1" border="0"></td>\n';
  txt += '<td><img src="image/shim.gif" width="100" height="1" border="0"></td>\n';
  txt += '<td><img src="image/shim.gif" width="210" height="1" border="0"></td>\n';
  txt += '</tr>\n';

  var Product = xmlData.getElementsByTagName("Product");
  var countProduct = Product.length;
  if(mycmd == "Y" && countProduct>4 ) {
    countProduct = 4;
  }
  for (var i=0; i<countProduct; i++) {
    var Product_type = Product[i].getAttribute("type");
    if(Product_type == "Offer"){
      var ProductName = Product[i].getElementsByTagName("ProductName")[0].firstChild.nodeValue;
      var Url = Product[i].getElementsByTagName("Url")[0].firstChild.nodeValue;
      var Price = Product[i].getElementsByTagName("Price")[0].firstChild.nodeValue;
      var Thumbnail = Product[i].getElementsByTagName("Thumbnail");
      var ListImage = Product[i].getElementsByTagName("ListImage");
      var GridImage = Product[i].getElementsByTagName("GridImage");
      if(check_row == 0){
        txt += '<tr align="left" valign="top">\n';
      } else {
        txt += '<td><br></td>\n';
      }
      txt += "<td>";
      if (ListImage.length > 0) {
        var ListImage_Url = ListImage[0].getElementsByTagName("Url")[0].firstChild.nodeValue;
        var ListImage_Height = ListImage[0].getElementsByTagName("Height")[0].firstChild.nodeValue;
        var ListImage_Width = ListImage[0].getElementsByTagName("Width")[0].firstChild.nodeValue;
        txt += '<a href="' + Url + '" target="_blank"><img src="' + ListImage_Url + '" width="' + ListImage_Width + '" height="' + ListImage_Height + '" border="0"></a>';
      } else if (Thumbnail.length > 0) {
        var Thumbnail_Url = Thumbnail[0].getElementsByTagName("Url")[0].firstChild.nodeValue;
        var Thumbnail_Height = Thumbnail[0].getElementsByTagName("Height")[0].firstChild.nodeValue;
        var Thumbnail_Width = Thumbnail[0].getElementsByTagName("Width")[0].firstChild.nodeValue;
        txt += '<a href="' + Url + '" target="_blank"><img src="' + Thumbnail_Url + '" width="' + Thumbnail_Width + '" height="' + Thumbnail_Height + '" border="0"></a>';
      }
      txt += '</td>';
      txt += '<td><div class="product_title"><a href="' + Url + '" target="_blank">' + ProductName + '</a></div>\n';
      txt += '<div class=\"product_price\">Price US$' + Price + '</div>\n';
      var Summary = Product[i].getElementsByTagName("Summary");
      if (Summary.length > 0) {
        var Summary = Product[i].getElementsByTagName("Summary")[0].firstChild.nodeValue;
        txt += '<div class="product_summary">' + Summary + '</div>\n';
      }
      var Merchant = Product[i].getElementsByTagName("Merchant");
      if (Merchant.length > 0) {
        var Merchant_id = Merchant[0].getAttribute("id");
        var Merchant_Name = Merchant[0].getElementsByTagName("Name")[0].firstChild.nodeValue;
        txt += '<div class="product_merchant">Shop/Brand: <b>' + Merchant_Name + '</b></div>\n';
      }
      txt += '</td>';
      if(check_row == 0){
        check_row = 1;
      } else {
        txt += '</tr>';
        txt += '<tr><td colspan="5"><hr></tr>';
        check_row = 0;
      }
    }
  }
  txt += "</table>\n";
  if(mycmd == "refinements"){
    document.getElementById("refinements").style.display = '';
    var txtR = "";
    var Refinement = xmlData.getElementsByTagName("Refinement");
    if(Refinement.length > 0) {
      txtR += '';
      for (var i=0; i<Refinement.length; i++) {
        var RefinementName = Refinement[i].getAttribute("name");
        var RefinementTotal = Refinement[i].getAttribute("totalvalues");
        if (lang2 == "jp") {
          txtR += "<h5>" + RefinementName + "で絞込</h5>\n";
        } else {
          txtR += "<h5>Refine by " + RefinementName + "</h5>\n";
        }
        txtR += '<div class="refinelist">';
        var RefineValue = Refinement[i].getElementsByTagName("RefineValue");
        for (var j=0; j<RefineValue.length; j++) {
          var RTitles = RefineValue[j].getElementsByTagName("Title");
          var RTitle = RTitles[0].firstChild.nodeValue;
          var RValues = RefineValue[j].getElementsByTagName("Value");
          var RValue = RValues[0].firstChild.nodeValue;
          var RNums = RefineValue[j].getElementsByTagName("NumberOfProducts");
          var RNum = RNums[0].firstChild.nodeValue;
          txtR += '<input name="myrefinementsnew" type="checkbox" value="' + RValue + '" />' + RTitle + ' (' + RNum + ') ';
        }
        txtR += '</div>';
      }
      txtR += '<input type="button" value="Refine" onClick="yahooShopping();" />\n';
    } else {
      txtR += '<input type="hidden" name="myrefinements" value="" />\n';
    }
  }
  $("resultY").innerHTML = txt;
  $("refinements").innerHTML = txtR;
  if(mycmd != "Y") {
    document.getElementById("resultbottom").style.display = '';
  }
}

function displayYahooShoppingSide(httpObj)
{
  var txt = "";
  var xmlData = httpObj.responseXML;
  var Products = xmlData.getElementsByTagName("Products");
  var totalResultsAvailable = Products[0].getAttribute("totalResultsAvailable");
  var firstResultPosition = Products[0].getAttribute("firstResultPosition");
  var mypage = (firstResultPosition - 1) / 10 + 1;
  var lastpage = totalResultsAvailable / 10;
  if(totalResultsAvailable > 0) {
    document.getElementById("resulttop").style.display = '';
    document.getElementById("resultbottom").style.display = '';
    var Product = xmlData.getElementsByTagName("Product");
    var countProduct = Product.length;
    if(countProduct>4 ) {
      countProduct = 4;
    }
    for (var i=0; i<countProduct; i++) {
      var Product_type = Product[i].getAttribute("type");
      if(Product_type == "Offer"){
        var ProductName = Product[i].getElementsByTagName("ProductName")[0].firstChild.nodeValue;
        var Url = Product[i].getElementsByTagName("Url")[0].firstChild.nodeValue;
        var Price = Product[i].getElementsByTagName("Price")[0].firstChild.nodeValue;
        var Thumbnail = Product[i].getElementsByTagName("Thumbnail");
        var ListImage = Product[i].getElementsByTagName("ListImage");
        var GridImage = Product[i].getElementsByTagName("GridImage");
        if (ListImage.length > 0) {
          var ListImage_Url = ListImage[0].getElementsByTagName("Url")[0].firstChild.nodeValue;
          var ListImage_Height = ListImage[0].getElementsByTagName("Height")[0].firstChild.nodeValue;
          var ListImage_Width = ListImage[0].getElementsByTagName("Width")[0].firstChild.nodeValue;
          txt += '<center><a href="' + Url + '" target="_blank"><img src="' + ListImage_Url + '" width="' + ListImage_Width + '" height="' + ListImage_Height + '" border="0"></a></center>';
        } else if (Thumbnail.length > 0) {
          var Thumbnail_Url = Thumbnail[0].getElementsByTagName("Url")[0].firstChild.nodeValue;
          var Thumbnail_Height = Thumbnail[0].getElementsByTagName("Height")[0].firstChild.nodeValue;
          var Thumbnail_Width = Thumbnail[0].getElementsByTagName("Width")[0].firstChild.nodeValue;
          txt += '<center><a href="' + Url + '" target="_blank"><img src="' + Thumbnail_Url + '" width="' + Thumbnail_Width + '" height="' + Thumbnail_Height + '" border="0"></a></center>';
        }
        txt += '<div class="product_title"><a href="' + Url + '" target="_blank">' + ProductName + '</a></div>\n';
        txt += '<div class=\"product_price\" style=\"text-align: center;\">Price US$' + Price + '</div>\n';
        txt += '<br />\n';
      }
    }
    $("leftresultY").innerHTML = txt;
  }
}

function amazonSearch(mypage)
{
  var myForm = document.getElementById("myFormA");
  var myLocale = myForm.myLocale.value;
  var mycatalogcode = myForm.mycatalogcode.value;
  var myMerchantId = myForm.myMerchantId.value;
  var mySearchIndex = myForm.mySearchIndex.value;
  var myKeywords = myForm.myKeywords.value;
  var myManufacturer = myForm.myManufacturer.value;
  var myBrand = myForm.myBrand.value;
  if(myLocale == "JP"){
    var url = "_get_amazon_search.php?myLocale=JP";
  } else {
    var url = "_get_amazon_search.php?myLocale=US";
  }
  if(mycatalogcode != ""){
    url += "&mycatalogcode="+encodeURI(mycatalogcode);
  }
  if(mySearchIndex != ""){
    url += "&mySearchIndex="+encodeURI(mySearchIndex);
  }
  if(myKeywords != ""){
    url += "&myKeywords="+encodeURI(myKeywords);
  }
  if(myManufacturer != ""){
    url += "&myManufacturer="+encodeURI(myManufacturer);
  }
  if(myBrand != ""){
    url += "&myBrand="+encodeURI(myBrand);
  }
  if(myMerchantId != "") {
    url += "&myMerchantId="+encodeURI(myMerchantId);
  }
  if(mypage){
    url += "&mypage="+encodeURI(mypage);
  }
  url += "&cache="+(new Date()).getTime();
  new Ajax.Request(url, { method: 'get', onComplete: displayAmazon, onFailure: displayFailureA });
  $("resultA").innerHTML = '<div class="product_total">Searching for products...</div>';

  document.getElementById("resultbottom").style.display = 'none';
}

function displayAmazon(httpObj)
{
  var txt = "";
  var check_row = 0;
  var xmlData = httpObj.responseXML;
  var TotalResults = xmlData.getElementsByTagName("TotalResults")[0].firstChild.nodeValue;
  var SearchIndex = xmlData.getElementsByTagName("SearchIndex")[0].firstChild.nodeValue;
  var lastpage = xmlData.getElementsByTagName("TotalPages")[0].firstChild.nodeValue;
  var mypage = xmlData.getElementsByTagName("ItemPage")[0].firstChild.nodeValue;
  if(mycmd != "A") {
    txt += '<div class="product_total">Search Result <b>' + TotalResults + '</b> products.</div>\n';
    if(TotalResults > 0) {
      lastpage = lastpage * 1;
      mypage = mypage * 1;
      txt += '<p class="page">\n';
      if(mypage > 1) {
        for (var i=4; i>0; i--) {
          var mypage2 = mypage - i;
          if(mypage2 > 0){
            txt += '<a href="javascript:;" onClick="amazonSearch(\'' + mypage2 + '\');" class="page">' + mypage2 + '</a>';
          }
        }
      }
      txt += '<font class="page">' + mypage + '</font>';
      if(mypage < lastpage){
        for (var i=1; i<5; i++) {
          var mypage2 = mypage + i;
          if(mypage2 < lastpage){
            txt += '<a href="javascript:;" onClick="amazonSearch(\'' + mypage2 + '\');" class="page">' + mypage2 + '</a>';
          }
        }
      }
      txt += '</p>\n';
    }
  } else if(TotalResults > 0) {
    document.getElementById("resulttop").style.display = '';
    document.getElementById("resultbottom").style.display = '';
  }

  txt += '<table border="0" cellpadding="0" cellspacing="0" width="625">\n';
  txt += '<tr>\n';
  txt += '<td><img src="image/shim.gif" width="100" height="1" border="0"></td>\n';
  txt += '<td><img src="image/shim.gif" width="210" height="1" border="0"></td>\n';
  txt += '<td><img src="image/shim.gif" width="5" height="1" border="0"></td>\n';
  txt += '<td><img src="image/shim.gif" width="100" height="1" border="0"></td>\n';
  txt += '<td><img src="image/shim.gif" width="210" height="1" border="0"></td>\n';
  txt += '</tr>\n';
  var itemList = xmlData.getElementsByTagName("Item");
  var countProduct = itemList.length;
  if(mycmd == "A" && countProduct>4 ) {
    countProduct = 4;
  }

  for (var i=0; i<countProduct; i++) {
    var Title = "";
    var ASIN = itemList[i].getElementsByTagName("ASIN")[0].firstChild.nodeValue;
    var DetailPageURL = itemList[i].getElementsByTagName("DetailPageURL")[0].firstChild.nodeValue;
    Title += itemList[i].getElementsByTagName("Title")[0].firstChild.nodeValue;
    var FeatureAll = itemList[i].getElementsByTagName("Feature");
    var Feature = "";
    for (var j=0; j<FeatureAll.length; j++) {
      Feature += FeatureAll[j].firstChild.nodeValue + " ";
    }
    if(check_row == 0){
      txt += '<tr align="left" valign="top">\n';
    } else {
      txt += '<td><br></td>\n';
    }
    txt += "<td>";
    var data_SmallImage = itemList[i].getElementsByTagName("SmallImage");
    var SmallImage_URL= "noImage.gif";
    if(data_SmallImage.length > 0) {
      SmallImage_URL = data_SmallImage[0].getElementsByTagName("URL")[0].firstChild.nodeValue;
      txt += '<a href="' + DetailPageURL + '" target="_blank"><img src="' + SmallImage_URL + '" border="0"></a>';
    } else {
      txt += '<img src="' + SmallImage_URL + '">';
    }
    txt += '</td>';
    txt += '<td><div class="product_title"><a href="' + DetailPageURL + '" target="_blank">' + Title + '</a></div>\n';
    txt += '<div class="product_summary">' + Feature + '</div>\n';
    txt += '<div class="product_summary">ASIN: ' + ASIN + '</div>\n';
    var data_ItemAttributes = itemList[i].getElementsByTagName("ItemAttributes");
    for (var k=0; k<data_ItemAttributes[0].childNodes.length; k++) {
      var TagName = data_ItemAttributes[0].childNodes[k].tagName;
      var TagData = data_ItemAttributes[0].getElementsByTagName(TagName)[0].firstChild.nodeValue;
      if (SearchIndex == "Books") {
        if(TagName == "Author" || TagName == "Publisher"){
          txt += '<div class="product_merchant">' + TagName + ': <b>' + TagData + '</b></div>\n';
        }
      } else if (SearchIndex == "Classical" || SearchIndex == "DVD" || SearchIndex == "Music" || SearchIndex == "MusicTracks" || SearchIndex == "Video") {
        if(TagName == "Label"){
          txt += '<div class="product_merchant">' + TagName + ': <b>' + TagData + '</b></div>\n';
        }
      } else {
        if(TagName == "Brand"){
          txt += '<div class="product_merchant">Brand/Shop: <b>' + TagData + '</b></div>\n';
        }
      }
      if(TagName == "ListPrice"){
        var Price = data_ItemAttributes[0].getElementsByTagName(TagName)[0].getElementsByTagName('FormattedPrice')[0].firstChild.nodeValue;
        txt += '<div class="product_merchant">List Price: <b>' + Price + '</b></div>\n';
      }
    }

    var data_OfferSummary = itemList[i].getElementsByTagName("OfferSummary");
    for (var k=0; k<data_OfferSummary[0].childNodes.length; k++) {
      var TagName = data_OfferSummary[0].childNodes[k].tagName;
      var TagData = data_OfferSummary[0].getElementsByTagName(TagName)[0].firstChild.nodeValue;
      if(TagName == "LowestNewPrice"){
        var Price = data_OfferSummary[0].getElementsByTagName(TagName)[0].getElementsByTagName('FormattedPrice')[0].firstChild.nodeValue;
        txt += '<div class="product_merchant">New Price: from <b>' + Price + '</b></div>\n';
      }
      if(TagName == "LowestUsedPrice"){
        var Price = data_OfferSummary[0].getElementsByTagName(TagName)[0].getElementsByTagName('FormattedPrice')[0].firstChild.nodeValue;
        txt += '<div class="product_merchant">Used Price: from <b>' + Price + '</b></div>\n';
      }
    }

    txt += '</td>';
    if(check_row == 0){
      check_row = 1;
    } else {
      txt += '</tr>';
      txt += '<tr><td colspan="5"><hr></tr>';
      check_row = 0;
    }
  }
  txt += '</table>\n';
  $("resultA").innerHTML = txt;
  document.getElementById("resultbottom").style.display = '';
}

function displayAmazonSide(httpObj)
{
  var txt = "";
  var xmlData = httpObj.responseXML;
  var TotalResults = xmlData.getElementsByTagName("TotalResults")[0].firstChild.nodeValue;
  if(TotalResults > 0) {
    document.getElementById("resulttop").style.display = '';
    document.getElementById("resultbottom").style.display = '';
    var itemList = xmlData.getElementsByTagName("Item");
    var countProduct = itemList.length;
    if(countProduct>4 ) {
      countProduct = 4;
    }
    for (var i=0; i<countProduct; i++) {
      var DetailPageURL = itemList[i].getElementsByTagName("DetailPageURL")[0].firstChild.nodeValue;
      var Title = itemList[i].getElementsByTagName("Title")[0].firstChild.nodeValue;
      var data_SmallImage = itemList[i].getElementsByTagName("SmallImage");
      var SmallImage_URL= "noImage.gif";
      if(data_SmallImage.length > 0) {
        SmallImage_URL = data_SmallImage[0].getElementsByTagName("URL")[0].firstChild.nodeValue;
        txt += '<center><a href="' + DetailPageURL + '" target="_blank"><img src="' + SmallImage_URL + '" border="0"></a></center>';
      } else {
        txt += '<img src="' + SmallImage_URL + '">';
      }
      txt += '<div class="product_title"><a href="' + DetailPageURL + '" target="_blank">' + Title + '</a></div>\n';
      txt += '<br />\n';
    }
    $("leftresultA").innerHTML = txt;
  }
}

function displayFailureY(httpObj)
{
  txt = "- No search results -";
  $("resultY").innerHTML = txt;
}
function displayFailureA(httpObj)
{
  txt = "- No search results -";
  $("resultA").innerHTML = txt;
}

function saveLog(cat)
{
  var url = '_save_log.php?click=1&cat=' + cat;
  url += '&uid=' + uid;
  url += '&lang2=' + lang2;
  new Ajax.Request(url, { method: 'get', onComplete: saveLog2 });
}
function saveLog2()
{
  txt = '<img src="image/shim.gif" width="1" height="1" border="0">';
  $("logresult").innerHTML = txt;
}

function alertLogin()
{
  alert("This function is members only.\nIf you have already set up your account, please log in at first. \nIf not, please sign up. This is free service.");
}

function alertLoginJP()
{
  alert("先にログインしてください。\nご登録がまだの方は先にご登録(無料)をお願いいたします。");
}

