//楽天APIのジャンル
var genreId_CD = "101311";		//CD
var genreId_DVD = "101354";		//DVD
var genreId_BOOK = "200162";	//本・雑誌・コミック
var genreId_ITEM = "100486";	//ジュエリー・アクセサリー（女性用）

//divのid名
var divNameDateCD = "dateCD";
var divNameDateDVD = "dateDVD";
var divNameDateBOOK = "dateBOOK";
var divNameDateITEM = "dateITEM";

var divNameCD = "cdItems";
var divNameDVD = "dvdItems";
var divNameBOOK = "bookItems";
var divNameITEM = "itemItems";



window.onload = function() {
	//APIコール
	init_CD(genreId_CD);
	init_DVD(genreId_DVD);
	init_BOOK(genreId_BOOK);
	init_ITEM(genreId_ITEM);
}



//APIコール
function init_CD(genreId) {
	//console.log("ジャンルID:%d",genreId);
	var apiUrl = "http://api.rakuten.co.jp/rws/2.0/json?developerId=52bf92c12e97e7938e7041093a909d00&operation=ItemRanking&version=2009-04-15";
	var queri = "&genreId=" + genreId + "&callBack=rakuCallbackCD";
	var url = apiUrl + queri;
    requestJsonp(url);	//APIリクエストはJSONP形式で受け取る
}
function init_DVD(genreId) {
	//console.log("ジャンルID:%d",genreId);
	var apiUrl = "http://api.rakuten.co.jp/rws/2.0/json?developerId=52bf92c12e97e7938e7041093a909d00&operation=ItemRanking&version=2009-04-15";
	var queri = "&genreId=" + genreId + "&callBack=rakuCallbackDVD";
	var url = apiUrl + queri;
    requestJsonp(url);	//APIリクエストはJSONP形式で受け取る
}
function init_BOOK(genreId) {
	//console.log("ジャンルID:%d",genreId);
	var apiUrl = "http://api.rakuten.co.jp/rws/2.0/json?developerId=52bf92c12e97e7938e7041093a909d00&operation=ItemRanking&version=2009-04-15";
	var queri = "&genreId=" + genreId + "&callBack=rakuCallbackBOOK";
	var url = apiUrl + queri;
    requestJsonp(url);	//APIリクエストはJSONP形式で受け取る
}
function init_ITEM(genreId) {
	//console.log("ジャンルID:%d",genreId);
	var apiUrl = "http://api.rakuten.co.jp/rws/2.0/json?developerId=52bf92c12e97e7938e7041093a909d00&operation=ItemRanking&version=2009-04-15";
	var queri = "&genreId=" + genreId + "&callBack=rakuCallbackITEM";
	var url = apiUrl + queri;
    requestJsonp(url);	//APIリクエストはJSONP形式で受け取る
}



//コールバック関数
function rakuCallbackCD(res) {
	//最終更新日部
	var lastBuidDate = res.Body.ItemRanking.lastBuildDate;
	dispHtmlDate("music", lastBuidDate);

	//ランキング部
    for(tgd in res.Body.ItemRanking.Items.Item) {
		var rank = res.Body.ItemRanking.Items.Item[tgd].rank;
		var itemName = res.Body.ItemRanking.Items.Item[tgd].itemName;
		var itemUrl = res.Body.ItemRanking.Items.Item[tgd].itemUrl;
		var mediumImageUrl = res.Body.ItemRanking.Items.Item[tgd].mediumImageUrl;
		var itemCaption = res.Body.ItemRanking.Items.Item[tgd].itemCaption;
		dispHtml("music", rank, itemName, itemUrl, mediumImageUrl, itemCaption);
	}
}
function rakuCallbackDVD(res) {
	//最終更新日部
	var lastBuidDate = res.Body.ItemRanking.lastBuildDate;
	dispHtmlDate("movie", lastBuidDate);

	//ランキング部
    for(tgd in res.Body.ItemRanking.Items.Item) {
		var rank = res.Body.ItemRanking.Items.Item[tgd].rank;
		var itemName = res.Body.ItemRanking.Items.Item[tgd].itemName;
		var itemUrl = res.Body.ItemRanking.Items.Item[tgd].itemUrl;
		var mediumImageUrl = res.Body.ItemRanking.Items.Item[tgd].mediumImageUrl;
		var itemCaption = res.Body.ItemRanking.Items.Item[tgd].itemCaption;
		dispHtml("movie", rank, itemName, itemUrl, mediumImageUrl, itemCaption);
	}
}
function rakuCallbackBOOK(res) {
	//最終更新日部
	var lastBuidDate = res.Body.ItemRanking.lastBuildDate;
	dispHtmlDate("book", lastBuidDate);

	//ランキング部
    for(tgd in res.Body.ItemRanking.Items.Item) {
		var rank = res.Body.ItemRanking.Items.Item[tgd].rank;
		var itemName = res.Body.ItemRanking.Items.Item[tgd].itemName;
		var itemUrl = res.Body.ItemRanking.Items.Item[tgd].itemUrl;
		var mediumImageUrl = res.Body.ItemRanking.Items.Item[tgd].mediumImageUrl;
		var itemCaption = res.Body.ItemRanking.Items.Item[tgd].itemCaption;
		dispHtml("book", rank, itemName, itemUrl, mediumImageUrl, itemCaption);
	}
}
function rakuCallbackITEM(res) {
	//最終更新日部
	var lastBuidDate = res.Body.ItemRanking.lastBuildDate;
	dispHtmlDate("item", lastBuidDate);

	//ランキング部
    for(tgd in res.Body.ItemRanking.Items.Item) {
		var rank = res.Body.ItemRanking.Items.Item[tgd].rank;
		var itemName = res.Body.ItemRanking.Items.Item[tgd].itemName;
		var itemUrl = res.Body.ItemRanking.Items.Item[tgd].itemUrl;
		var mediumImageUrl = res.Body.ItemRanking.Items.Item[tgd].mediumImageUrl;
		var itemCaption = res.Body.ItemRanking.Items.Item[tgd].itemCaption;
		dispHtml("item", rank, itemName, itemUrl, mediumImageUrl, itemCaption);
	}
}



//最終更新日部表示
function dispHtmlDate(category, lastBuidDate) {

	var objDate = new Date(lastBuidDate);
	var objDate2 = DateFormatter.format(objDate, "Y/m/d");

	var htmlDate = "<p class='rankPeriod'>最終更新日：" + objDate2 + "</p>";
	
	//カテゴリにより挿入先を変更
	if(category == "music") {
		_add(divNameDateCD,htmlDate);
	} else if (category == "movie") {
		_add(divNameDateDVD,htmlDate);
	} else if (category == "book") {
		_add(divNameDateBOOK,htmlDate);
	} else if (category == "item") {
		_add(divNameDateITEM,htmlDate);
	}
}

//ランキング部表示
function dispHtml(category, rank, itemName, itemUrl, mediumImageUrl, itemCaption) {
	if (itemCaption.length > 150) {
		itemCaption = itemCaption.substr(0, 150) + "　．．．";
	}

	var html =	"<div class='rankBox1Wrapper'>" + 
				"<img class='rankBox1TopLine' src='/shared/img/ranking/rankBodyLine.png' alt='' />" +
				"<div class='rankBox1 clearfix'>";
				
	if (rank < 10) {
		html += "<img src='/shared/img/ranking/rankPrise0" + rank + ".png' alt='" + rank + "位' />";

	} else {
		html += "<img src='/shared/img/ranking/rankPrise" + rank + ".png' alt='" + rank + "位' />";
	
	} 
	
	html +=		"<a href='" + itemUrl + "' target='_blank'><img width='65' src='" + mediumImageUrl + "' alt='' /></a>" +
				"<h4><a href='" + itemUrl + "' target='_blank'>" + itemName + "</a></h4>" +
				"<p>" + itemCaption + "</p>" +
				"</div>" + 
				"<img class='rankBox1BtmLine' src='/shared/img/ranking/rankBodyLine.png' alt='' />" + 
				"</div>";
	
	//カテゴリにより挿入先を変更
	if (category == "music") {
		_add(divNameCD,html);
	} else if (category == "movie") {
		_add(divNameDVD,html);
	} else if (category == "book") {
		_add(divNameBOOK,html);
	} else if (category == "item") {
		_add(divNameITEM,html);
	}
}