
/* ****************************************************************************
	ブログパーツ　ランディングページ
	/promotion/chart_trk/
**************************************************************************** */
function generateWeeklyTrackRankingHTML(domID) {
	//alert("generateWeeklyTrackRankingHTML("+domID+")");
	new Ajax.Request('/music/ranking/track.xml', {
		onComplete: function( r ) {
			var html = '';
			var data;
			var tags = r.responseXML.getElementsByTagName('item').item(0).childNodes;
			for (j=0; j<tags.length; j++) {
				var nodeName = tags[j].nodeName;
				switch(nodeName) {
					case 'description':
						data = tags[j].firstChild.nodeValue;
						break;
					default: continue;
				}
			}
			data = data.replace(/napster.jp\/images\//mg, 'napster.jp/shared/includes/jacket/');
			data = data.replace(/<th class="rank">順位<\/th>/mg, '<th class="rank"><img src="/music/images/text_chart05.gif" alt="順位" /></th>')
			data = data.replace(/<th class="before">前回<\/th>/mg, '<th class="before"><img src="/music/images/text_chart06.gif" alt="前回" /></th>')
			data = data.replace(/<th class="track" colspan="2">トラック<\/th>/mg, '<th class="track" colspan="2"><img src="/music/images/text_chart07.gif" alt="トラック" /></th>')
			data = data.replace(/<th class="album">アーティスト／アルバム<\/th>/mg, '<th class="album"><img src="/music/images/text_chart08.gif" alt="アーティスト／アルバム" /></th>')
			html = data;
			document.getElementById(domID).innerHTML = html;
		}
	});
}





/* ****************************************************************************
	n曲のなかみ　/music/index.html
**************************************************************************** */

/* 
	ニューリリース

	@arg	dom_id	string	出力先のDOM
 */
function getNewRelease(dom_id) {
	alert("getNewRelease("+dom_id+")");
	new Ajax.Request('/xml/newrelease_all.xml', {
		onComplete: function( r ) {
			var data;
			var entries_nodes = r.responseXML.getElementsByTagName('entry');

			var entries = new Array;
			for (var i=0; i<entries_nodes.length; i++) {

				var e_nodes = entries_nodes[i].childNodes;
				var e = new Array();
				for (var j=0; j<e_nodes.length; j++) {
					switch (e_nodes[j].nodeName) {
						case 'title':
							e['title'] = e_nodes[j].firstChild.nodeValue;
							break;
						case 'link':
							e['link'] = e_nodes[j].getAttributeNode('href').value;
							break;
						case 'content':
							e['content'] = e_nodes[j].firstChild.nextSibling.nodeValue;
							break;
						default : continue;
					}
				}
				entries[i] = e;
			}
			var html = generateNewReleaseHTML(entries, dom_id);
			alert(html);
			$(dom_id).innerHTML = html;

//			var entries = r.responseXML.getElementsByTagName('entry').item(0).childNodes;
//
//			for (j=0; j<entries.length; j++) {
//				var nodeName = entries[j].nodeName;
//				switch(nodeName) {
//					case 'content':
//						data = entries[j].firstChild.nextSibling.nodeValue;
//						//alert(data);
//						break;
//					default: continue;
//				}
//			}
		},
		onFailure: function(request) {
			alert('読み込みに失敗しました');
		},
		onException: function (request, e) {
			alert('読み込み中にエラーが発生しました。　'+e.name + ': '+ e.message);
		}
	});
}
	function generateNewReleaseHTML(entries) {
		var col = 3;
		var counter = 0;
		var html = '';
		var text_header = '\n				<h2>ニューリリース</h2>\n\n';
		var text_rowstart = '				<div class="row">\n';
		var text_item = '					<div class="item">\n						<p class="jacket"><a href="/music/album/%albumid%"><img src="/music/images/201001/jackets/newrelease/%imgfile%" width="60" alt="%title%" /></a></p>\n						<div class="text">\n							<p class="album"><a href="/music/album/%albumid%">%albumname%</a></p>\n							<p class="artist"><a href="/music/artist/%artistid%">%artistname%</a></p>\n						<!-- /[.text] --></div>\n					<!-- /[.item] --></div>\n';
		var text_rowend = '				<!-- /[.row] --></div>\n';
		var text_footer = '\n				<div class="btn_start"><a href="/start/">最大7日間の入会特典つき！ 聴き放題をはじめる</a></div>\n\n';

		html += text_header;
		for (var i=0; i<entries.length; i++) {
			if (counter==0) {html += text_rowstart;}
			var e = entries[i];
			var c = parseContent(e['content']);
			var ti = text_item;
			ti = ti.replace(/%imgfile%/g, c['imgfile']);
			ti = ti.replace(/%title%/g, e['title']);
			ti = ti.replace(/%albumid%/g, c['albumid']);
			ti = ti.replace(/%albumname%/g, c['albumname']);
			ti = ti.replace(/%artistid%/g, c['artistid']);
			ti = ti.replace(/%artistname%/g, c['artistname']);
			html += ti;
			counter++;
			if (counter==col || i==entries.length-2) {html += text_rowend; counter=0;}
		}
		if (counter!=0) {html += text_rowend; counter=0;}
		html += text_footer;
		return html;

		var html = '';
		entries.each(function(e){
			var c = parseContent(e['content']);
			html += 'album: <a href="/music/album/'+ c['albumid'] +'">'+ c['albumname'] +'</a><br />\n';
			html += 'artist: <a href="/music/artist/'+ c['artistid'] +'">'+ c['artistname'] +'</a><br />\n';
			html += '<img src="/music/images/201001/jackets/newrelease/'+ c['imgfile'] +'" alt="'+ e['title'] +'" /><br />\n'
		});
		return html;

		/* ジャケ写ダウンロードURL生成用 */
		var html = '';
		entries.each(function(e){
			var c = new Array();
			var tmp = e['content'].match(/<img src="(http:\/\/images\.napster\.com\/mp3s\/.+\/[0-9]+\.jpg)" alt=".*" \/>/);
			html += RegExp.$1 +'<br />\n';
		});
		return html;
	}
	function parseContent(str) {
		var c = new Array();
		var tmp = str.match(/<img src="http:\/\/images\.napster\.com\/mp3s\/.+\/([0-9]+\.jpg)" alt=".*" \/>/);
		c['imgfile'] = RegExp.$1;
		tmp = str.match(/<a href="http:\/\/www\.napster\.jp(\/music\/artist\/[0-9]+)">([^<>]+)<\/a>/);
		c['artistid'] = RegExp.$1;
		c['artistname'] = RegExp.$2;
		tmp = str.match(/<a href="http:\/\/www\.napster\.jp(\/music\/album\/[0-9]+)">([^<>]+)<\/a>/);
		c['albumid'] = RegExp.$1;
		c['albumname'] = RegExp.$2;
		return c;
	}

function getTrackRanking(id) {
	//alert("getTrackRanking("+id+")");
	new Ajax.Request('/music/ranking/track.xml', {
		onComplete: function( r ) {
			var html = '';
			var data;
			var tags = r.responseXML.getElementsByTagName('item').item(0).childNodes;
			for (j=0; j<tags.length; j++) {
				var nodeName = tags[j].nodeName;
				switch(nodeName) {
					case 'description':
						data = tags[j].firstChild.nodeValue;
						break;
					default: continue;
				}
			}

			var a = data.split("\n");

			/** make napster link */
			var rank = 1;
			var nsLink = new Array();
			for (var i=0; i<a.length; i++) {
				if (a[i].indexOf('albumid=') == -1) {continue;}
				var query = a[i].split('?');
				var get = query[1].split('&amp;');
				for (var j=0; j<get.length; j++) {
					if (get[j].indexOf('albumid') == -1) {continue;}
					var value = get[j].split('=');
					//alert('value = '+value);
					nsLink[rank] = 'http://www.napster.jp/music/album/' + value[1];
				}
				rank++;
			}

			/** make ranking item */
			rank = 1;
			var item = new Array();
			for (var i=0; i<a.length; i++) {
				switch(true) {
					case (a[i].indexOf('<td class="track">') != -1):
						a[i].match(/<td class="track">(.+)<\/td>/);
						//alert('RegExp.$1 = '+RegExp.$1);
						//alert('nsLink['+rank+'] = '+nsLink[rank]);
						//alert('nsLink = '+nsLink);
						item[rank] = '<a href="'+nsLink[rank]+'">'+ RegExp.$1 +'</a>';
						continue;
						break;
					case (a[i].indexOf('<td class="album">') != -1):
						a[i].match(/<td class="album">(.+)<\/td>/);
						//alert('RegExp.$1 = '+RegExp.$1);
						var album = RegExp.$1.split('<br/>');
						//alert('album[0] = '+album[0]);
						item[rank] += ' / '+ album[0];
						break;
					default: continue;
				}
				rank++;
			}

			/** make html */
			html += '			<table class="ranking">'+"\n";
			html += '				<tbody>'+"\n";
			var oddeven = 'odd';
			rank = 1;
			for (var i=0; i<10; i++) {
				rank_str = (rank==1) ? '<img src="/music/images/icon_toprank02.gif" alt="1" height="15" width="19">' : rank;
				html += '					<tr class="'+oddeven+'">'+"\n";
				html += '						<th>'+rank_str+'</th>'+"\n";
				//alert('item['+rank+'] = '+item[rank]);
				html += '						<td>'+ item[rank] +'</td>'+"\n";
				html += '					</tr>'+"\n";
				oddeven = (oddeven=='odd') ? 'even' : 'odd';
				rank++;
			}
			html += '				</tbody>'+"\n";
			html += '			</table>'+"\n";
			//alert('html = '+html);
			document.getElementById(id).innerHTML = html;
		}
	});
}

function getArtistRanking(id) {
	//alert("getArtistRanking("+id+")");
	new Ajax.Request('/music/ranking/artist.xml', {
		onComplete: function( r ) {
			var html = '';
			var data;
			var tags = r.responseXML.getElementsByTagName('item').item(0).childNodes;
			for (j=0; j<tags.length; j++) {
				var nodeName = tags[j].nodeName;
				switch(nodeName) {
					case 'description':
						data = tags[j].firstChild.nodeValue;
						break;
					default: continue;
				}
			}

			var a = data.split("\n");

			/** make napster link */
			var rank = 1;
			var nsLink = new Array();
			for (var i=0; i<a.length; i++) {
				if (a[i].indexOf('artistid=') == -1) {continue;}
				var query = a[i].split('?');
				var get = query[1].split('&amp;');
				for (var j=0; j<get.length; j++) {
					if (get[j].indexOf('artistid') == -1) {continue;}
					var value = get[j].split('=');
					//alert('value = '+value);
					nsLink[rank] = 'http://www.napster.jp/music/artist/' + value[1];
				}
				rank++;
			}

			/** make html */
			html += '			<table class="ranking">'+"\n";
			html += '				<tbody>'+"\n";
			var oddeven = 'odd';
			rank = 1;
			for (var i=0; i<a.length; i++) {
				if (a[i].indexOf('<td class="artist">') == -1) {continue;}
				//alert('a['+i+'] = '+a[i]);
				a[i].match(/<td class="artist">(.+)<\/td>/);
				//alert('RegExp.$1 = '+RegExp.$1);
				rank_str = (rank==1) ? '<img src="/music/images/icon_toprank02.gif" alt="1" height="15" width="19">' : rank;
				html += '					<tr class="'+oddeven+'">'+"\n";
				html += '						<th>'+rank_str+'</th>'+"\n";
				//alert('nsLink['+i+'] = '+nsLink[i]);
				//alert('nsLink = '+nsLink);
				html += '						<td><a href="'+nsLink[rank]+'">'+RegExp.$1+'</a></td>'+"\n";
				html += '					</tr>'+"\n";
				oddeven = (oddeven=='odd') ? 'even' : 'odd';
				rank++;
			}
			html += '				</tbody>'+"\n";
			html += '			</table>'+"\n";
			//alert('html = '+html);
			document.getElementById(id).innerHTML = html;
		}
	});
}





/* ****************************************************************************
	ホーム　/index.html
**************************************************************************** */
function getInfo(id) {//alert("getInfo()");
	new Ajax.Request('/info/index.xml', {
		onComplete: function( r ) {
			var displayItems = 7;
			var html = '';
			var pullDown = new Array();
			var data = new Array();
			var items = r.responseXML.getElementsByTagName('item');
			//alert('r.responseXML.getElementsByTagName(item).length = '+r.responseXML.getElementsByTagName('item').length);
			for (i=0; i<items.length; i++) {
				//alert('items['+i+'].nodeName = '+items[i].nodeName);
				var tags = r.responseXML.getElementsByTagName('item').item(i).childNodes;
				//alert('tags.length = '+tags.length);
				data[i] = new Array();
				for (j=0; j<tags.length; j++) {
					//alert('tags[j].nodeName = '+tags[j].nodeName);
					var nodeName = tags[j].nodeName;
					switch(nodeName) {
						case 'title':
						case 'link':
							data[i][nodeName] = tags[j].firstChild.nodeValue;
							break;
						case 'pubDate':
							var d = new Date(tags[j].firstChild.nodeValue);
							yyyy = String(d.getFullYear());
							mm = String(d.getMonth() + 1);
							if (mm.length==1) {mm = String('0'+mm);}
							dd = String(d.getDate());
//							if (dd.length==1) {dd.String('0'+dd);}
							data[i][nodeName] = yyyy+'/'+mm+'/'+dd; // yyyy/mm/dd
							pullDown['i'+yyyy+mm] = yyyy+'/'+mm; // yyyy/mm
//							alert('pullDown['+"i"+yyyy+mm+'] = '+pullDown['i'+yyyy+mm]);
//							pullDown.push(yyyy+'/'+mm);
							break;
						default:
							continue;
					}
					//alert('data['+i+']['+nodeName+'] = '+ data[i][nodeName]);
				}
				if (i >= displayItems) {continue;}
				var firstChild = (i==0) ? ' firstChild' : '';
				html += '				<div class="generalBlockI'+ firstChild +'">'+"\n";
				html += '					<p>'+ data[i]['pubDate'] +'</p>'+"\n";
				html += '					<h4 class="headingC anchorElementA columnBlock"><a href="'+ data[i]['link'] +'">'+ data[i]['title'] +'</a></h4>'+"\n";
				html += '				</div><!--//generalBlockI -->'+"\n";
				//alert('html = '+html);
			}
			document.getElementById(id).innerHTML = html;

			var pd = new Array();
			for (var i in pullDown) {
				if (typeof(pullDown[i]) == 'function') {continue;}
				pd.push(pullDown[i]);
			}
			//alert('pd = '+pd);
			html = makePullDown(pd);
			//alert('html = '+html);

			document.getElementById('panePullDown').innerHTML = html;
		}
	});
}
	function makePullDown(list_ary) {
		var html = '';
		html += '<strong>月別アーカイブ：</strong>'+"\n";
		html += '<select onchange="location.href = this.options[this.selectedIndex].value;">'+"\n";
		html += '<option value="#" selected="selected">選択してください</option>'+"\n";
		for (i=0; i<list_ary.length; i++) {
			html += '<option value="http://www.napster.jp/info/' + list_ary[i] +'/">'+list_ary[i]+'</option>'+"\n";
		}
		html += '</select>'+"\n";
		return html;
	}

//alert('/js/getInfo.js is included.');





function get_date( id, type ) {
  if ( ! document.getElementById(id) ) return;
  type = type == 'artist' ? 'artist' : 'track';
  new Ajax.Request( '/music/ranking/'+type+'.xml', { onComplete: function( r ) {
    var tags = r.responseXML.getElementsByTagName('item').item(0).childNodes;
    for ( var i = 0; i < tags.length; i ++ ) {
      if ( tags.item(i).nodeName != 'title' ) continue;
      var value = tags.item(i).firstChild.nodeValue.match(/[0-9]+/g);
      if ( value.length < 6 ) continue;
      var text = document.getElementById(id).innerHTML;
      text = text.replace(/Y1/,value[0]).replace(/M1/,value[1]).replace(/D1/,value[2]);
      text = text.replace(/Y2/,value[3]).replace(/M2/,value[4]).replace(/D2/,value[5]);
      document.getElementById(id).innerHTML = text;
    }
  } } );
}

//<script type="text/javascript" src="/shared/js/prototype.js"></script>

//<p>show artist ranking: <span id="artist_date">Y1/M1/D1 - Y2/M2/D2</span></p>
//<script>get_date('artist_date','artist');</script>
//<p>show artist ranking: <span id="track_date">Y1/M1/D1 - Y2/M2/D2</span></p>
//
//<script>get_date('track_date','track');</script>


