﻿dojo.require("dojo.io.script");

function rakuten(json) {		// 楽天ウェブサービスのコールバック関数
	try {
		var data = json.Body.ItemSearch.Items.Item;	// 商品情報の配列データ
		var out = "<table><caption>楽天市場での検索結果</caption>";
		out += "<th>商品画像</th><th>商品名</th><th>価格</th><th>商品の説明</th>";
			for (var i = 0; i<Math.min(data.length, 5); i++) {
				out += "<tr><td><a href='" + data[i].affiliateUrl + "'>";
				out += data[i].imageFlag ? "<img border='0' src='" + data[i].smallImageUrl + "' /></a>" : "";
				out += "</td>";
				out += "<td><a href='" + data[i].affiliateUrl + "'>";
				out += data[i].itemName.substring(0,20) + "</a></td>";
				out += "<td>" + data[i].itemPrice + "円</td>";
				out += "<td>" + data[i].itemCaption.substring(0,100) + "...</td></tr>";
			}
		out += "</table>";
	} catch(e) {
		var out = "楽天市場では見つかりませんでした。他のキーワードで試してください。";
	}

	dojo.byId("rakuten").innerHTML = out;		// 結果表示
}

function kakaku_ws(json) {	// 価格.com API JSONPのコールバック関数
	try {
		var data = json.Item;
		var out = "<table><caption>価格.comでの検索結果</caption>";
		out += "<th>商品画像</th><th>商品名</th><th>最低価格</th><th>カテゴリー名</th>";
			for (var i = 0; i<Math.min(data.length, 5); i++) {
				out += "<tr><td><a href='" + data[i].ItemPageUrl + "'>";
				out += "<img border='0' src='" + data[i].ImageUrl + "' /></a>";
				out += "</td>";
				out += "<td><a href='" + data[i].ItemPageUrl + "'>";
				out += data[i].ProductName.substring(0,20) + "</a></td>";
				out += "<td>" + data[i].LowestPrice + "円</td>";
				out += "<td>" + data[i].CategoryName + "...</td></tr>";
			}
		out += "</table>";
	} catch(e) {
		var out = "価格.comでは見つかりませんでした。他のキーワードで試してください。";
	}

	dojo.byId("kakaku").innerHTML = out; 		// 結果表示
}

function reqJSONP(keyword) {
	if(!keyword) return false;

	var jsonp_arg = {	// dojo.io.script.get()に渡すパラメータのオブジェクト
		"rakuten": {	// Webサービスのラベル
			url: "http://api.rakuten.co.jp/rws/1.9/json",
			content: {
				developerId: "f879668b3d6e9e013892d69faee61432",
				affiliateId: "04c5e843.02d0e1d4.04c5e844.01b548e3",
				operation: "ItemSearch",
				version: "2007-10-25",
				sort: "-reviewCount",
				hits: 30,		// 返される結果の件数
				keyword: keyword	// 検索語句
			},
			callbackParamName: "callBack",	// コールバック関数のパラメータ名
			load: rakuten,	// コールバック関数名
			canDelete: true		// 実行終了後、scriptタグを削除
		},

		"kakaku": {	// Webサービスのラベル
			url: "http://jsonp.yatena.com/" + keyword,
			load: kakaku_ws,
			canDelete: true
		}
	};

	for(var key in jsonp_arg) {
		if(!dojo.byId(key)) {
			$("<div/>").attr("id",key).appendTo("h6");
		}
		dojo.io.script.get(jsonp_arg[key]);
	}
}
