﻿// JavaScript Document
//桁取
function format(num){
	var	temp1	= num.match(/./g).reverse().join("");
			temp1	= temp1.replace(/(\d{3})/g,"$1,");
			temp1	= temp1.match(/./g).reverse().join("").replace(/^,/,"");
	return (temp1);
}

function titles(name,genre,sentences,code,note,series,lineUp,price,os,pack,license,hatsubaibi,yomi,JAN,ISBN) {
	var p2	= ISBN.split('\\')
			p2	= new String(p2[1]);
			p2	= format(p2.replace(/E/i,''));
	if(ISBN.length>10){
		var bln=true;
	}else{
		var bln=false;
	}

	this.pr2	= bln

	this.name		= name;			//製品名
	this.genre		= genre;		//色分類
	this.sentences	= sentences;	//中文類
	this.code		= code;			//製品コード
	this.note		= note;			//1行キャッチ
	this.series		= series;		//シリーズ名
	this.lineUp		= lineUp;		//ラインアップ名
	this.price		= price;		//価格
	this.priceE		= price;			//価格
//	this.price2		= p2[1].replace(/E/ig,'');		//価格
	this.os			= os;			//対応OS
	this.pack		= pack;			//パッケージ内容
	this.JAN		= JAN;			//JANコード
	this.ISBN		= ISBN;			//ISBNコード
	this.license	= license		//ライセンス
	this.hatsubaibi	= hatsubaibi;	//発売日
	this.yomi		= yomi;	//発売日

	var baseYYYYMM	= hatsubaibi.split('/')
	var YYYYMM			= baseYYYYMM[0]*100+baseYYYYMM[1]*1
	this.YYYYMM			= YYYYMM;
	this.DD					=	baseYYYYMM[2]

	//製品ページURL
    this.uri		= function() {
        return ('/titles/'+this.genre+'/'+this.code+'/');
    }
	//パッケージページ用、パッケージ詳細HTML出力
    this.toPacklist	= function() {
        return ('<a href="/titles/'+this.genre+'/'+this.code+'/">'+this.name+'<img src="/img/common_img/next.gif" width="15" height="15" align="absmiddle" border="0"></a>');
    }
	//価格
    this.toPackName	= function() {
        return ('<h4>'+this.name+'</h4><p class="caption">標準価格　'+this.price+'円</p>');
    }
	//新規製品チェック
	this.newTitles	= function() {
		var HTML	=	new String();
			HTML	+=	'<div class="nBox">';
			HTML	+=	'<div class="nImg">'+('<img src="/img/product_img/'+this.code+'_m.gif" width="60" height="80"  border="0">').link('/titles/'+this.genre+'/'+this.code+'/')+'</div>';
			HTML	+=	'<p class="nHatsubaibi">'+this.hatsubaibi.replace(/(.*?)\/(.*?)\/(.*)/ig,'$1年$2月$3日')+'</p>';
			if(this.series.length>0){
				HTML	+=	'<h2>'+this.series.link('/titles/'+this.genre+'/'+this.code+'/')+'</h2>';
				var p	='\uFF5E'
			}else{
				HTML	+=	'<h2>'+this.name.link('/titles/'+this.genre+'/'+this.code+'/')+'</h2>';
				var p	=''
			}
			HTML	+=	'<p>標準価格'+this.price+'円(税込)'+p+'</p>';
			HTML	+=	'<p class="nNote">'+this.note+'</p>';
			HTML	+=	'</div>';
		return(HTML);
	}
	//製品名出力（シリーズ名考慮）
	this.seriesname	= function(){
		if(series.length>1)	return(series);
		else				return(name);
	}
	//50音順リストの出力
	this.w50HTML	=function(bln){
		var	HTML	= new String();
		var	myName	= new String();
		if(series.length>1)	myName	= series;
		else				myName	= name;
		if(bln){
			HTML += '<tr valign="top" nowrap class="'+fncColor()+'">';
			HTML += '<th>'+myName+'</th>';
			HTML += '<td>'+sentences+'</td>';
			HTML += '<td>'+note+'</td>';
			HTML += '<td class="ssi" nowrap>'+'<img src="/img/common_img/next.gif" width="15" height="15" align="absmiddle" border="0">詳細'.link('/titles/'+genre+'/'+code+'/')+'</td></tr>';
			return(HTML);
		}else{
			return('');
		}
	}

	//ズバリ販売応援リストの出力
	this.np50HTML	=function(bln){
		var	HTML	= new String();
		var	myName	= new String();
		if(series.length>1)	myName	= series;
		else				myName	= name;
		if(bln){
			var ht=hatsubaibi.split('/');
			var	PDFpath	='/np/img/new/release/'+ht[0]+'_'+ht[1]+'/'+JAN+'.pdf';
					PDFpath	=PDFpath.replace(/ /ig,'');
			HTML += '<tr valign="top" bgcolor="'+fncColorSN()+'">';
			HTML += '<th><a href="javascript:URLchk(\''+PDFpath+'\',\''+PDFpath+'\',\'#\');">'+myName+'</a></th>';
			HTML += '<td>';
			HTML += '<a href="http://a1763.g.akamai.net/f/1763/9658/10m/ftp.sourcenext.co.jp/pub/package/'+JAN+'s.jpg"><img src="img/pk_s.gif" border="0"></a>　';
//			HTML += '<a href="http://www.sourcenext.co.jp/pub/package/'+JAN+'.jpg"><img src="img/pk_n.gif" border="0"></a>　';
//			HTML += '<a href="javascript:URLchk(\'/np/banner/img/'+code+'/470x80.jpg\',\'/np/banner/?'+code+'\',\'/np/banner.html\');"><img src="img/banner.gif" border="0"></a>　';
//			HTML += '<a href="javascript:URLchk(\'/af/'+code+'.html\',\'/af/'+code+'.html\',\'/af/\');"><img src="img/html.gif" border="0"></a>';
			HTML += '</td>';
			HTML += '<td>'+price+'円</td>';
			HTML += '<td>'+p2+'円</td>';
			HTML += '<td>'+JAN+'</td>';
			HTML += '<td>&nbsp;&nbsp;'+code+'&nbsp;&nbsp;</td>';
			HTML += '<td>'+ISBN+'</td>';
			HTML += '<td>&nbsp;&nbsp;'+hatsubaibi+'&nbsp;&nbsp;</td>';
//			HTML += '<td>'+sentences+'</td>';
			return(HTML);
		}else{
			return('');
		}
	}
}
var wArray	= new Array();
	wArray['kid'] = 'ジャンルに関係なく、幼児から高校生までを対象とするソフト。<br>一般用の学習ソフトは水色の「知識・技能の習得」をお探しください。'
	wArray['sel'] = '語学、知識、スキル、資格などの自己啓発ソフト。<br>お子様向けの学習ソフトはピンク色の「幼児〜高校生向け」をお探しください。'
	wArray['sys'] = 'セキュリティやシステムユーティリティなどパソコンそのものを目的とするソフト。'
	wArray['use'] = '個人の嗜好が関わりなく、誰もが使う実用的なソフト。<br>キャラクターものや趣味が強く関係するソフトは緑色の「趣味」をお探しください。'
	wArray['hob'] = 'さまざまな分野の趣味のソフト。<br>実用的なソフトでもキャラクターものや嗜好の関わりが強いものはこちらです。'
	wArray['ent'] = 'ゲーム、コミック、マルチメディアなど、娯楽を目的とするソフト。<br>タイピングゲームもこちらです。'

var objArray	= new Array();
function create_lineUp(){
	if (lineUp_xmlhttp.readyState == 4 && lineUp_xmlhttp.status == 200){
//		var	HTML	= get_response_text(lineUp_xmlhttp.responseText);
		HTMLarray	= new Array();
		HTMLarray	= get_response_text(lineUp_xmlhttp.responseText).replace(/\r/g,'\n').replace(/\n\n+/g,'\n').replace(/\n$/g,'').replace(/）/g,')').replace(/（/g,'(').replace(/\"/g,'').split('\n');
		HTMLarray.shift();
		var	chksum		= false;
		for(var i=0; i<HTMLarray.length; i++){
			HTMLarray[i]	= HTMLarray[i].split('\t');
			objArray[HTMLarray[i][0]]	= new titles(HTMLarray[i][6],HTMLarray[i][1],HTMLarray[i][2],HTMLarray[i][0],HTMLarray[i][8],HTMLarray[i][4],HTMLarray[i][5],HTMLarray[i][9],HTMLarray[i][10],HTMLarray[i][11],HTMLarray[i][12].length,HTMLarray[i][3],HTMLarray[i][7],HTMLarray[i][14],HTMLarray[i][15]);
			HTMLarray[i].unshift(HTMLarray[i].splice(7,1));
		}
		if(!window['sn']){
			create_50List();
		}else if(sn=='np'){
			create_NpList();
		}else if(sn=='np2'){
			create_NpList2();
		}else if(sn=='license'){
			create_Licenset();
		}else if(sn=='pack'){
			create_packList();
		}else if(sn=='new'){
			create_newList();
		}else if(sn=='rList'){
			ranking(gen);
		}else if(sn.length>=5){
			create_lineUpList(objArray[sn].lineUp);
		}else{
			create_colorList(gen);
		}
	}
}
var c	=	true;
function fncColor(){
	c = !c;
	if(c) return('ca') ;else return('cb');
}
function fncColorSN(){
	c = !c;
	if(c) return('lavender') ;else return('white');
}
/*製品ページラインアップ*/
function create_lineUpList(myLineup){
	var array	=	new Array();
	if(myLineup.length>0){
		for(var i=0; i<HTMLarray.length; i++){
			if(HTMLarray[i][6]==myLineup){
				var HTML  = new String();
					HTML += '<div>'+('<img src="/img/product_img/'+HTMLarray[i][1]+'_m.gif" width="60" height="80" border="0">')+'</div>';
					HTML += '<h3>'+objArray[HTMLarray[i][1]].name.replace(/　$/g,'')+'</h3>';
					HTML += '<p>'+objArray[HTMLarray[i][1]].price.replace(/\\/g,'').replace(/"/g,'')+'円(税込)</p>';
				array.push(HTML);
			}
		}
		document.getElementById('lineUp').innerHTML	+= ('<div class="luBox">'+array.join('</div><div class="luBox">')+'</div>');
		document.getElementById('lineUp').style.display='block';
	}
}
/*パック製品ラインアップ*/
function create_packList(){
	var a	=	new Array();
	var	n	=	new Number();
	var h	=	new String();
	c	=	true;
	for(var i=0; i<HTMLarray.length; i++){
		if(HTMLarray[i][11].length>0){
			a[n++]	=	HTMLarray[i][1];
		}
	}
	for(var i=0; i<a.length; i++){
		h	+=	'<tr class="'+fncColor()+'"><td>'+objArray[a[i]].toPackName()+'</td><td>';
		h	+=	'<ul class="caption">';
		var l	= objArray[a[i]].pack.split(',');
		for(var j=0; j<l.length; j++){
			if(objArray[l[j]]){
			h	+=	'<li>'+objArray[l[j]].toPacklist()+'</li>';
			}else{
			alert(l[j]);
			}
		}
		h	+=	'</ul></td></tr>';
	}
	var	hh	='<table width="100%" border="0" cellspacing="1" cellpadding="0" id="pack">';
	var	hf	='</td></tr></table><div style="text-align:right; margin:3px 0 0;" class="caption"><a href="#top">▲上に戻る</a></div>';
	document.getElementById('lineUp').innerHTML	+= hh+h+hf;
	document.getElementById('lineUp').style.display='block';
	ranking('pack.html');
}
/*新製品一覧*/
function create_newList(){
	var array	=	new Array();
	for(var i=0; i<HTMLarray.length; i++){
		if(HTMLarray[i][4].length>0){
			var a	= new Array(HTMLarray[i][4],HTMLarray[i][1]);
			array.push(a);
		}
	}
	array.reverse();
	var HTML	= new String();
	var mm		= new String();
	var	num		= new Number();
	var chk		= new Number();
	for(var i=0; i<array.length; i++){
		if(mm!=array[i][0].replace(/(.*?)\/(.*?)\/.*/ig,'$1/$2')){
				mm	=	array[i][0].replace(/(.*?)\/(.*?)\/.*/ig,'$1/$2');
			var	num		= new Number();
				chk++;
			if(chk>3) break;
			HTML+='<h2 class="mm">'+array[i][0].replace(/(.*?)\/(.*?)\/.*/ig,'$1年$2月発売製品')+'</h2>';
		}
		HTML	+= objArray[array[i][1]].newTitles();
		if(num++%2==1){
		HTML	+= '<div style="clear:both;"></div>';
		}
	}
	document.getElementById('lineUp').innerHTML	+= HTML;
	document.getElementById('lineUp').style.display='block';
	document.getElementById('loading').style.display='none';
	ranking('new.html');
}
/*ジャンル一覧*/
function create_colorList(myColor){
	document.getElementById('colorWord').innerHTML=wArray[gen];
	c	=	true;
	var array		=	new Array();
	var tempArray	=	new Array();
	var imgArray	=	new Array();
	var n			=	new Number();
	HTMLarray.sort();
	for(var i=0; i<HTMLarray.length; i++){
		if((HTMLarray[i][8].length >= 1)&&(HTMLarray[i][2]==myColor)){
			array[n++] = new Array(HTMLarray[i][3],HTMLarray[i][5],HTMLarray[i][7],HTMLarray[i][8],HTMLarray[i][2],HTMLarray[i][1]);
		}
	}
	array.sort();
	for(var i=0; i<array.length; i++){
		var HTML  = new String();
		HTML += '<tr valign="top" nowrap class="'+fncColor()+'"><td>'+array[i][0]+'</td>';
		if(array[i][1].length>1){
			HTML += ('<th>'+array[i][1]+'シリーズ</th>').replace(/\)シリーズ/,')');
		}else{
			HTML += '<th>'+array[i][2]+'</th>';
		}
		HTML += '<td>'+array[i][3]+'</td>';
		HTML += '<td class="ssi" nowrap><img src="/img/common_img/next.gif" width="15" height="15" align="absmiddle" border="0">'+'詳細'.link('/titles/'+array[i][4]+'/'+array[i][5]+'/')+'</td></tr>';
		tempArray.push(HTML);
		imgArray.push(array[i][5]);
	}
	var img		=	new String();
	for(i=0; i<5; i++){
		var tmp	=	imgArray.splice(Math.floor(Math.random()*imgArray.length),1);
		img		+=	'<img src="/img/product_img/'+tmp[0]+'_m.gif" width="60" height="80" border="0">';
	}
	document.getElementById('lineUp').innerHTML	+= ('<div id="lisImgBox">'+img+'</div><table border="0" cellspacing="1" cellpadding="0">'+tempArray.join('\n')+'</table>');
	document.getElementById('lineUp').style.display='block';
	ranking(myColor);
}
function make50Array(){
	var topHTML	= '<tr valign="bottom"><td>製品名</td><td>パケ画</td><td>税込価格</td><td>税別価格</td><td>JANコード</td><td>製品コード</td><td>ISBNコード</td><td>発売日</td></tr>'
	var	w		= new Array();
		w[0]	=  new Array('<table border="0" cellspacing="0" cellpadding="0" class="tbl50">'+topHTML+'<tr><td colspan="4"><a name="a"></a><h3>あ</h3></td></tr>\n',true);
		w[1]	=  new Array('<tr><td colspan="4" nowrap valign="bottom"><a name="k"></a><h3>か<a href="#top">▲上に戻る</a></h3></td></tr>\n'+topHTML+'\n',true);
		w[2]	=  new Array('<tr><td colspan="4" nowrap valign="bottom"><a name="s"></a><h3>さ<a href="#top">▲上に戻る</a></h3></td></tr>\n'+topHTML+'\n',true);
		w[3]	=  new Array('<tr><td colspan="4" nowrap valign="bottom"><a name="t"></a><h3>た<a href="#top">▲上に戻る</a></h3></td></tr>\n'+topHTML+'\n',true);
		w[4]	=  new Array('<tr><td colspan="4" nowrap valign="bottom"><a name="n"></a><h3>な<a href="#top">▲上に戻る</a></h3></td></tr>\n'+topHTML+'\n',true);
		w[5]	=  new Array('<tr><td colspan="4" nowrap valign="bottom"><a name="h"></a><h3>は<a href="#top">▲上に戻る</a></h3></td></tr>\n'+topHTML+'\n',true);
		w[6]	=  new Array('<tr><td colspan="4" nowrap valign="bottom"><a name="m"></a><h3>ま<a href="#top">▲上に戻る</a></h3></td></tr>\n'+topHTML+'\n',true);
		w[7]	=  new Array('<tr><td colspan="4" nowrap valign="bottom"><a name="y"></a><h3>や<a href="#top">▲上に戻る</a></h3></td></tr>\n'+topHTML+'\n',true);
		w[8]	=  new Array('<tr><td colspan="4" nowrap valign="bottom"><a name="r"></a><h3>ら<a href="#top">▲上に戻る</a></h3></td></tr>\n'+topHTML+'\n',true);
		w[9]	=  new Array('<tr><td colspan="4" nowrap valign="bottom"><a name="w"></a><h3>わ<a href="#top">▲上に戻る</a></h3></td></tr>\n'+topHTML+'\n',true);
	return(w)
}
function chkLine(str){
//	myPort	=	window.location.port;
//	if(myPort=='9001')	alert(str);
	var j		= new Number();
	var cap	= str.charCodeAt(0);
		if(cap>=12431)		j	= 9;
		else if(cap>=12425)	j	= 8;
		else if(cap>=12420)	j	= 7;
		else if(cap>=12414)	j	= 6;
		else if(cap>=12399)	j	= 5;
		else if(cap>=12394)	j	= 4;
		else if(cap>=12383)	j	= 3;
		else if(cap>=12373)	j	= 2;
		else if(cap>=12363)	j	= 1;
		else	j	= 0;
	return(j);
}

//50音順リスト出力

function create_50List(){
	ranking('name.html');//ページ右部ランキング表示
	var	w	= make50Array();

	var array	=	new Array();
	var sName	= new String();
	HTMLarray.sort();

	for(var i=0; i<HTMLarray.length; i++){
		if(objArray[HTMLarray[i][1]].note && ((objArray[HTMLarray[i][1]].series != sName)||!objArray[HTMLarray[i][1]].series)){
		//「一行キャッチ」と「シリーズ名」を確認して、参照データとして一時的に格納
			array.push(HTMLarray[i][1]);
			sName = objArray[HTMLarray[i][1]].series;
		}
	}
	for(var i=0; i<array.length; i++){
		var j		= chkLine(objArray[array[i]].yomi);
		var HTML	= new String();
		if(w[j][1]){
			HTML	+=	w[j][0];
			w[j][1]	=	false;
			c		=	true;
		}
		HTML	+=	objArray[array[i]].w50HTML(true);
		array[i]	=	HTML;
		document.getElementById('loading').innerHTML	= '処理中：'+i+'件/'+array.length+'件';
	}
	document.getElementById('lineUp').innerHTML	= ('<div id="w50">'+array.join('\n')+'</table>\n</div>');
	document.getElementById('loading').style.display='none';
}

function create_NpList(){
	//50音indexの配列を作成
	var	w	= make50Array();

	var array	= new Array();
	var sName	= new String();
	HTMLarray.sort();

	for(var i=0; i<HTMLarray.length; i++){
		if(objArray[HTMLarray[i][1]].note && objArray[HTMLarray[i][1]].pr2 && ((objArray[HTMLarray[i][1]].series != sName)||!objArray[HTMLarray[i][1]].series)){
		//「一行キャッチ」と「シリーズ名」を確認して、参照データとして一時的に格納
			array.push(HTMLarray[i][1]);
			sName = objArray[HTMLarray[i][1]].series;
		}
	}
	for(var i=0; i<array.length; i++){
		var j		= chkLine(objArray[array[i]].yomi);
		var HTML	= new String();
		if(w[j][1]){
			HTML	+=	w[j][0];
			w[j][1]	=	false;
			c		=	true;
		}
		HTML	+=	objArray[array[i]].np50HTML(true);
		array[i]	=	HTML;
	}
	document.getElementById('50list').innerHTML	= ('<div id="w50">'+array.join('\n')+'</table>\n</div>');
	document.getElementById('loading').style.display='none';
}
function create_NpList2(){

	var indexArray	= new Array();
	var array				= new Array();
	var dArray			= new Array();
	var dArrayIndex	= new Array();
	var sName				= new String();
	HTMLarray.sort();


	var	d	= new Date();
	var	y	= d.getYear();
	var	m	= d.getMonth() + 1;
	var	indexNum	=	new Number()
	if (y < 2000) { y += 1900; }
	for(var i=y; i>=2006; i--){
		for(var j=12; j>=1; j--){
			dArray[i*100+j]=new Array();
			dArrayIndex.push(i*100+j);
		}
	}


	for(var i=0; i<HTMLarray.length; i++){
		if(objArray[HTMLarray[i][1]].note && objArray[HTMLarray[i][1]].pr2 && objArray[HTMLarray[i][1]].hatsubaibi && ((objArray[HTMLarray[i][1]].series != sName)||!objArray[HTMLarray[i][1]].series)){
		//「一行キャッチ」と「シリーズ名」と「発売日」を確認して、参照データとして一時的に格納
			var YYYYMM	= objArray[HTMLarray[i][1]].YYYYMM
			var	DD			= objArray[HTMLarray[i][1]].DD
			dArray[YYYYMM].push(new Array(DD,HTMLarray[i][1]));
			sName = objArray[HTMLarray[i][1]].series;
		}
	}

	for(var i=0 ; i<dArrayIndex.length; i++){
		if(dArray[dArrayIndex[i]].length){
			var	YYYYMM=new String(dArrayIndex[i])
			var nd	= YYYYMM.replace(/(....)(..)/,'$1年$2月');
			array.push('<tr><td colspan="4" nowrap valign="bottom"><h3>'+nd+'の発売製品</h3></td></tr>')
			for(var j=0 ; j<dArray[dArrayIndex[i]].length; j++){
				array.push(objArray[dArray[dArrayIndex[i]][j][1]].np50HTML(true));
			}
		}
	}
/*
	for(var i=0; i<array.length; i++){
		var HTML	= new String();
		HTML	+=	objArray[array[i]].np50HTML(true);
		array[i]	=	HTML;
	}
*/
	var tblT		= '<table border="0" cellspacing="0" cellpadding="0" class="tbl50">';
	var topHTML	= '<tr valign="bottom"><td>製品名</td><td>パケ画</td><td>税込価格</td><td>税別価格</td><td>JANコード</td><td>製品コード</td><td>ISBNコード</td><td>発売日</td></tr>'
	var tblB		= '</table>';

	document.getElementById('50list').innerHTML	= ('<div id="w50">'+tblT+topHTML+array.join('\n')+tblB+'</table>\n</div>');
	document.getElementById('loading').style.display='none';
}

//ライセンスページ
function create_Licenset(){
	//50音indexの配列を作成
	var	w	= make50Array();

	var array	= new Array();
	var sName	= new String();
	HTMLarray.sort();

myPort	=	window.location.port;
//if(myPort=='9001')	alert(HTMLarray[27][7]+'/'+HTMLarray[27][5]);

	for(var i=0; i<HTMLarray.length; i++){
		if(objArray[HTMLarray[i][1]].note && ((objArray[HTMLarray[i][1]].series != sName)||!objArray[HTMLarray[i][1]].series)){
		//「一行キャッチ」と「シリーズ名」を確認して、参照データとして一時的に格納
			array.push(HTMLarray[i][1]);
			sName = objArray[HTMLarray[i][1]].series;
		}
	}
	for(var i=0; i<array.length; i++){
		var j		= chkLine(objArray[array[i]].yomi);
		var HTML	= new String();
		if(w[j][1]){
			HTML	+=	w[j][0];
			w[j][1]	=	false;
			c		=	true;
		}
		HTML	+=	objArray[array[i]].w50HTML(objArray[array[i]].license);
		array[i]	=	HTML;
		document.getElementById('loading').innerHTML	= '処理中：'+i+'件/'+array.length+'件';
	}
	document.getElementById('lineUp').innerHTML	= ('<div id="w50">'+array.join('\n')+'</table>\n</div>');
	document.getElementById('loading').style.display='none';
}
