﻿function goodsSearch(page) {
	state.innerHTML = "検索中です・・・";
	goods.innerHTML = "";
	info.innerHTML = "";

	var url = "http://ws.bzen.net/lib/RakutenItemSearch.php";

	var paramList = "keyword=";
	if(key){
		paramList += key;
		word.value = decodeURIComponent(key);
		key = null;
	}else{
		if(!word.value){
			word.value = "旅行";
		}
		paramList += encodeURIComponent(word.value);
	}

	paramList += "&version=2007-10-25";
	paramList += "&hits=14"; //1ページの表示数
	paramList += "&page=" + page;
	paramList += "&sort=" + encodeURIComponent("-reviewCount"); //レビュー件数順（降順）
	paramList += "&imageFlag=1";

	//info.innerHTML = paramList;

	new Ajax.Request(url,
		{
			method: 'get',
			onSuccess: getResponse,
			onFailure: getError,
			parameters: paramList
	});

	function getResponse(req){
		var response = req.responseXML.getElementsByTagName('Response');
		var status = response[0].getElementsByTagName('Status')[0].firstChild.nodeValue;

		if(!(status == "Success")){
			state.innerHTML = "データが見つかりませんでした。";
			return;
		}

		var count = parseInt(response[0].getElementsByTagName('count')[0].firstChild.nodeValue);
		var first = parseInt(response[0].getElementsByTagName('first')[0].firstChild.nodeValue);
		var last = parseInt(response[0].getElementsByTagName('last')[0].firstChild.nodeValue);
		var hits = parseInt(response[0].getElementsByTagName('hits')[0].firstChild.nodeValue);
		var item = response[0].getElementsByTagName('Item');

		//ボタン作成
		var tmpBtn = "<table id=\"tblBtn\"><tr>"

		if (page < 2) {
			if(count > last){
				tmpBtn += "<td></td><td><input type=\"button\" name=\"btnNext\" id=\"btnNext\" value=\"次を表示\"></td>";
			}
		} else if (count > last) {
			tmpBtn += "<td><input type=\"button\" name=\"btnPrevious\" id=\"btnPrevious\" value=\"前を表示\"></td>";
			tmpBtn += "<td><input type=\"button\" name=\"btnNext\" id=\"btnNext\" value=\"次を表示\"></td>";
		} else {
			tmpBtn += "<td><input type=\"button\" name=\"btnPrevious\" id=\"btnPrevious\" value=\"前を表示\"></td><td></td>";
		}

		tmpBtn += "</tr></table>";
		var tmpHtml = tmpBtn;

		//商品テーブル作成
		tmpHtml += "<table id=\"tblGoods\"><tr>";

		for(i = 0; i < item.length; i++){
			var itemName = item[i].getElementsByTagName('itemName');
			var tmpAlt = itemName[0].firstChild.nodeValue;
			var affiliateUrl = item[i].getElementsByTagName('affiliateUrl');
			var tmpClickUrl = affiliateUrl[0].firstChild.nodeValue;
			var mediumImageUrl = item[i].getElementsByTagName('mediumImageUrl');
			var tmpUrl = mediumImageUrl[0].firstChild.nodeValue;

			//改行
			if(i%7==0){
				tmpHtml += "</tr><tr>";
			}

			//商品リンク作成
			tmpHtml += "<td><a href=\"" + tmpClickUrl + "\" target=\"_blank\">";
			tmpHtml += "<img src=\"" + tmpUrl + "\" alt=\"" + tmpAlt + "\" border=0></a></td>";
		}
		tmpHtml += "</tr></table>";
		tmpHtml += tmpBtn;

		//結果を表示
		state.innerHTML = "検索終了：" + count + " 件中 " + first + " ～ " + last + " 件目のデータです。<br />";
		goods.innerHTML = tmpHtml;

		//ボタンにイベントを設定
		var btnN = document.getElementsByName("btnNext");
		var btnP = document.getElementsByName("btnPrevious");

		if (page < 2) {
			if(count > last){
				btnN[0].onclick = function (){goodsSearch(++page);}
				btnN[1].onclick = function (){goodsSearch(++page);}
			}
		} else if (count > last) {
			btnN[0].onclick = function (){goodsSearch(++page);}
			btnP[0].onclick = function (){goodsSearch(--page);}
			btnN[1].onclick = function (){goodsSearch(++page);}
			btnP[1].onclick = function (){goodsSearch(--page);}
		} else {
			btnP[0].onclick = function (){goodsSearch(--page);}
			btnP[1].onclick = function (){goodsSearch(--page);}
		}

	}

	function getError(req){
		state.innerHTML = "データを取得できませんでした。<br />\n";
	}

return false;
}

