// コンストラクタ
function rakutenApi( rId , kwd ) {

	var DEVELOPER_ID = "9562c4e0cd548188f8313bbf2aa0b3d4";
	var AFFILIATE_ID = "088c681e.e6a7c790.088c681f.56dc2c67";
	var timerIn = 1000;
	var timerOut = 1000;
	var timerSlp = 15000;
	var mojiSize = 12;
	var hits = 30;
	var selection = 5;

    //pointを比較する関数
    function cmp_price(a, b) {
        return a- b;
    }
//カンマ入れる
function delim( price ) {
  var string = "" + +price;
  var pointIndex = string.indexOf(".");
  return (pointIndex == -1)
         ? string.replace(/(\d{1,3})(?=(?:\d\d\d)+$)/g, "$1,")
         : string.substring(0, pointIndex)
                 .replace(/(\d{1,3})(?=(?:\d\d\d)+$)/g, "$1,") +
           string.substring(pointIndex)
                 .replace(/(\d\d\d)(?=\d)/g, "$1,");
};






	this.showRakuten = function() {

		// 繰り返し呼ぶとエラーになるのではずしておく
//		$.ajaxSetup({scriptCharset:'utf-8'});

		$.getJSON("http://api.rakuten.co.jp/rws/1.12/json?callBack=?&developerId=" + DEVELOPER_ID + "&affiliateId=" + AFFILIATE_ID + "&operation=ItemSearch&version=2008-09-01&hits=30&sort=%2updateTimestamp&keyword=" + kwd , function(result) {
//		$.getJSON("http://api.rakuten.co.jp/rws/1.12/json?developerId=" + DEVELOPER_ID + "&affiliateId=" + AFFILIATE_ID + "&operation=ItemSearch&version=2008-09-01&hits=30&sort=%2updateTimestamp&keyword=" + kwd , function(result) {

			// アイテムが取れなかったときは何もしない
			if ( result.Body.ItemSearch.Items == null || result.Body.ItemSearch.Items.length == 0 ) {
				return true;
			};
			// 取得アイテムの格納
			var items;
			var item;
			items = result.Body.ItemSearch.Items.Item;

			// ランダムアイテム
		    	item = items[Math.floor( Math.random() * items.length -1  )];

			if( item == null ) {
				return true;
			}

			// 画像が無いものなども対象外
			if( item == null || item.mediumImageUrl == null || item.itemName == null || item.itemUrl == null) {
//				alert("No item Images");
				return false;
			};

			
			// 選択肢の用意
			var p = item.itemPrice;
			var s = 5;
			var prices = new Array(s);
			// 0〜4
			var correct = Math.floor( Math.random() * s );
//alert(correct);
			for ( var i=0; i<s; i++) {
				if ( i != correct ) {
					var t =  ( Math.floor(Math.random() * 2) );
					var t2 =  ( Math.random() * 10 );
					var t3 = ( Math.floor(Math.random()*100) )/100;
					prices[i] = Math.floor( p*( (t*t2) + t3 ) );
				} else {
					prices[i] = p;
				}
			}
			// ソート&正解格納
			prices.sort(cmp_price);
			for (var i=0;i<s;i++){
				if ( prices[i] == p) {
					correct = i;
				}
			}

			// １０００円ごとにカンマ
			for (var i=0;i<s;i++){
				prices[i] = delim(prices[i]);
			}
				
			
			// 表示
			var t="";
			t += "<input type=hidden id='_rakuten_url_" + rId + "' value='" + item.itemUrl + "' />";
			t += "<table border=1 width=110px cellspacing=0 cellpadding=0><tr><td align=center colspan=2>";
			t += "<a href=\'" + item.itemUrl + "\' target=\'_blank\' border=0>";
			t += "<img border=0 src=\'" + item.mediumImageUrl + "\' alt=\'" + item.itemName + "\'>";
			t += "</a></td></tr>";
//			t += "<tr><td>";
//			t += item.itemName + "　" +item.itemPrice + " 円";
//			t += item.itemPrice + " 円</td></tr></table>";

			t += "<tr><td align=center><table border=0 cellspacing=0 cellpadding=0>";
			for ( var i=0; i<s;i++) {
			
				t += "<tr><td  width=30px align=center>";
				if ( correct == i ) {
					t += "<input type=radio name='_radio_" + rId + "' value='correct' /><BR>";
				} else {
					t += "<input type=radio name='_radio_" + rId + "' /><BR>";
				}
				t += "</td>";
				t += "<td  align=right style=\'font: " + mojiSize + "px\'><nobr><tt>";
				if ( correct == i ) {
					t += prices[i] + "円" ;
				} else {
					t += prices[i] + "円";
				}
				t += "</tt></nobr></td></tr>";
			}

			t += "<tr><td align=center colspan=2><input type=button value='Check It!' onClick=\"checkit('" + rId + "');\"></td></tr>";

			t += "</table></td></tr>";

			t += "</table>";

			var target = $("#" + rId );
//			target.remove(t);
			target.replaceWith(t);
			return t;
		});

	};

};

//あたり判定
function checkit( r ) {
	var ritem = document.getElementsByName("_radio_" + r );
	var flg = false;
	for(var i=0;i<5;i++) {
		if ( "correct" == ritem[i].value ) { flg = true; };
		if ( true == ritem[i].checked ) {
			if ( "correct" == ritem[i].value ) {
				if ( confirm("正解！もっと詳しく見ますか？") ) {
					var ur = document.getElementById("_rakuten_url_" + r ).value;
					window.open( ur );
				};
			} else {
				ritem[i].disabled = true;
				if ( flg ) {
					alert("はずれ。もっと安いみたいです。");
				} else {
					alert("はずれ。もっと高いみたいです。");
				}
			}
		} else {
		}
	}

};


// メイン
document.write( "<DIV id=\'" + rakutenId + "\'></DIV>" );
new rakutenApi( rakutenId , encodeURI(rakutenKeyword) ).showRakuten();
//document.write( new rakutenApi( rakutenId , encodeURI(rakutenKeyword) ).showRakuten() );



