﻿var EC_bottom_Message	='<p class="kome">■お知らせ<br />3月11日（金）発生した地震の影響により、一部地域で、商品の配送が遅延する可能性がございます。お客様にはご迷惑お掛けいたしますが、あらかじめご了承ください。</p>';

//ここまで
var	priceObj= new Array();	
var	oshirase= '';
var	oshirasetop= '';


/*イベントトラッキングを仕込む*/
var getEventTrack	=(function(){
	var	_EventTrack = new String();
	var	_UrlSplit = location.pathname;
	var	_US = _UrlSplit.split('/');
    var _n = new Number();

	return	function(){
		if ((_UrlSplit=='/titles/bs/')||(_UrlSplit=='/titles/kyosoku/')||(_UrlSplit=='/titles/pdf/')||(_UrlSplit=='/titles/sys/107670/cart.html')){
			if(_US[2]=='sys'){
				_US[2] = 'vs'	
			}
			return 'onclick="javascript:gaEt(\''+_US[2]+'\',\'07_cart_'+(_n++)+'\',\'cart_data\');"';
		}else{
			return '';
		}
	};
})();
/*イベントトラッキングを仕込む*/

/********************************************/
/*                在庫管理系                */
/********************************************/

var	battery	= new Array('在庫あり','在庫あり','在庫僅少','在庫無し','')
var	stockJson	= new Object();

/*在庫管理JSONコールバック*/
function GetProductStocks(_json){
	stockJson	= _json;
}

/*在庫出力*/
function checkStocks(_ID,_items,_export){
	var	_stockItemsArray	= _items.toString().split(',');

	for(var _i in _stockItemsArray){
		var _stockItemsNum	= _stockItemsArray[_i]*1;
		_stockItemsArray[_i]=(_stockItemsNum>=100000)? '0000'+_stockItemsNum:'00000'+_stockItemsNum;
	}

	var _stockID	= _stockItemsArray.join('|');
	var _HTML	= new Array();
	var _num	= new Number();
	var _nowNum	= 1000000;

	for(var _i in stockJson.Stock){
		if(_stockID.match(stockJson.Stock[_i].PRODUCT_CODE.toString())){
			var _stock	= (stockJson.Stock[_i].STOCK)? stockJson.Stock[_i].STOCK:0;
			_HTML[_num++]	= _stock;
			_nowNum	= (_nowNum>_stock)? _stock:_nowNum;
		}
	}

	var	_batteryNum	= (_nowNum>=50)? 0:(_nowNum>10)? 1:(_nowNum>0)? 2:3;
	var	_battery	= '<p class="battery"><img src="/eshop/img/cart/stock/'+_batteryNum+'.gif" alt="'+battery[_batteryNum]+'" width="62" height="12" /></p>\n<!--p class="kome f70 l100 battery">※在庫量は目安です。ご購入いただけない場合もございます。ご了承ください。</p-->'
	var	_cart	= (_nowNum>0)? '<p class="cartBtn"><a href="https://www.sourcenext.com/eshop/action/es_cartadd?com_id='+_ID+'"><img src="/img/clear.gif" width="138" height="27" border="0" alt="カートに入れる" /></a></p>\n'+_battery:'<p class="img"><img src="/cp/img/pageitem/kanbai.gif" alt="カートに入れる" border="0" height="27" width="138"></p>\n'+_battery;

	if(_export=='inline'){
		document.write(_cart);
	}else if(_export=='return'||!_export){
		return _cart;
	}else{
	$('stock').innerHTML	= _HTML.join('<br />')+'<br />残：'+_nowNum;
	/*
	*/
		$(_export).innerHTML	= _cart;
	}
}
/**-----------------------**/

function set_dObj(time){
	_dAll	= time.toString().replace(/(\d{4})(\d{2})(\d{2})\d*/ig,'$1/$2/$3')
	dAll	= time.toString().match(/\d{8}/) 
}

function ww(){
	if(document.all)  {
		var b	= document.getElementsByTagName('BODY');
		var w	= b[0].clientWidth;
	}else if(document.layers||document.getElementById){
		var w	= window.innerWidth;
	}
	return (w/2-210)
}
function PopUp(){
		H	= document.documentElement.scrollTop||document.body.scrollTop

		document.getElementById('Layer1').style.left=ww()+'px';
		document.getElementById('Layer1').style.top=H+200+'px';
}
function PopOff(){
	document.getElementById('Layer1').style.top='-999px';
}
function cCkk(num){
	if(window.navigator.cookieEnabled){
		var port=window.location.port
		var myCookie	=document.cookie;
		if((myCookie.match(/SESSIONID/)&&myCookie.match(/BIGipServerpool_https/))||(port>0)){
			location.href = gtURI[num]+'?i=gt';
		}else{
			PopUp();
		}
	}else{
	alert('cookieを有効にしてください');
	}
}
function p3(){
	document.getElementById('EC').innerHTML	+= '<p style="margin: 10px 0pt;"><a href="/cp/tokutoku/souryou.html" target="_top"><img src="/cp/tokutoku/img/souryou_02.gif" border="0" height="60" width="210"></a></p>';
}

//↓外部html読み込み：ナガイが追加しました。
function getHtml(pageURL) {
xmlhttp = createXMLHttp();
if (xmlhttp)
{
xmlhttp.onreadystatechange = setPageData;
xmlhttp.open('GET', pageURL);
xmlhttp.send(null);
}else{
alert("XMLHttpRequest失敗");
}
}
function setPageData()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("disp").innerHTML = xmlhttp.responseText;
}
}
// XMLHttpsオブジェクト作成
function createXMLHttp()
{
try {
return new ActiveXObject ("Microsoft.XMLHTTP");
}catch(e){
try {
return new XMLHttpRequest();
}catch(e) {
return null;
}
}
return null;
}
//↑外部html読み込み


/*	製品カート設置	*/
/*	ssk	2009/01/22	*/
/*	ver. 1.0.0.B	*/

// JavaScript Document
function ec_cart(_arg){
/*URL確認*/
	args	= resSearch();

/*グローバル*/
	cartRemarkType=new Array();
	cartRemarkType['DS']	= 'ダウンロード版';
	cartRemarkType['DL']	= 'ダウンロード版';

	productAttention	= {
		'naiyou'	: new Array(),
		'seihin'	: new Array()
	};

	cartType	= new Array();
	cartType['DS']	= '<h4 class="EC_media"><img src="/img/common_img/ico_ds.gif" style="vertical-align: middle;" width="15" height="15">ダウンロード版</h4>';
	cartType['DL']	= '<h4 class="EC_media"><img src="/img/common_img/ico_dl.gif" style="vertical-align: middle;" width="15" height="15">ダウンロード版</h4>';
	cartType['ON']	= '<h4 class="EC_media">オンライン版</h4>';
	cartType['USB']	= '<h4 class="EC_media"><img src="/img/common_img/ico_umemo.gif" style="vertical-align: middle;" width="30" height="12">USBメモリ版</h4>';
	cartType['ROM']	= '<h4 class="EC_media"><img src="/img/common_img/ico_cd.gif" style="vertical-align: middle;" width="15" height="15">○○○</h4>';
	cartType['SD']	= '<h4 class="EC_media"><img src="/img/common_img/ico_sd.gif" style="vertical-align: middle;" width="15" height="15">microSD版</h4>';
	cartType['_ON']		= 'オンライン版';
	cartType['_DS']		= 'ダウンロード版';
	cartType['_DL']		= 'ダウンロード版';
	cartType['_USB']	= 'USBメモリ版';
	cartType['_ROM']	= '○○○';
	cartType['_SD']		= 'microSD版';

	set_dObj(time);

	loadingStatusCart = {
		"lst" : false,
		"xml" : false,
		"txt" : false
	};
	cartRemarks = {
		"DS"		: false,
		"BOX"		: false,
		"hassou"	: new Array(),
		"_hassou"	: new Array(),
		"hassoubi"	: new Array(),
		"_hassoubi"	: new Array(),
		"souryou"	: new Array(),
		"_souryou"	: new Array(),
		"media"		: new Array(),
		"file"		: new Array(),
		"size"		: new Array(),
		"h_num"		: new Array(),
		"a_num"		: new Array(),
		"s_num"		: new Array(),

		"m_num"		: new Array(),

		'type'		: new Array(),
		't_hassou'	: new Array(),
		'r_head'	: new Array(),
		'd_head'	: new Array(),
		'attention'	: new Array(),
		'attention_b'	: new Array()
	};
	cartRemarksBoxHead		= new Array();
	cartRemarksBoxHead[0]	= new Array(false,false,false);
	cartRemarksBoxHead[1]	= new Array(true,true,true);
	cartRemarksBoxHead[2]	= new Array(true,true,true);
	
	cartRemarksBoxBody		= new Array();
	cartRemarksBoxBody[0]	= new Array(false,false,false);
	cartRemarksBoxBody[1]	= new Array(true,true,true);
	cartRemarksBoxBody[2]	= new Array(true,true,true);

	if(_arg=='sec'){
		var	cartFile	=	'/eshop/xml/price_sec.xml';
		var	itemFile	=	'/eshop/xml/item.xml'
		var	titleFile	=	'/titles/titlelist.txt'
	}else if(w.search.match(/_ttt/)){
		tAlert('本番用のデータを読み込みます')
		var	cartFile	=	'/eshop/xml/price.xml';
		var	itemFile	=	'/eshop/xml/item.xml'
		var	titleFile	=	'/titles/titlelist.txt'
	}else if((w.port>0)&&!(w.search.match(/_c/))){
		tAlert('テスト用のデータを読み込みます1')
		var	cartFile	=	'/eshop/xml/price_.xml';
		var	itemFile	=	'/eshop/xml/item_.xml'
		var	titleFile	=	'/titles/test/titlelist_t.txt'
	}else{
		tAlert('正式用のデータを読み込みます')
		var	cartFile	=	'/eshop/xml/price.xml';
		var	itemFile	=	'/eshop/xml/item.xml'
		var	titleFile	=	'/titles/titlelist.txt'
	}
	
	requestFile(cartFile,'cart','xml',loadingStatusCart,'makeCrats');
	requestFile(itemFile,'lst','lst',loadingStatusCart,'makeCrats');
	requestFile(titleFile,'title_list','txt',loadingStatusCart,'makeCrats');

}


function set_dObj(time){
	_dAll	= time.toString().replace(/(\d{4})(\d{2})(\d{2})\d*/ig,'$1/$2/$3')
	dAll	= time.toString().match(/\d{8}/) 
}

/*ファイルの存在確認*/
function exChk(fileName,callBack,ID){
	var	xmlObj = createXMLHttp();
	if (xmlObj){
		xmlObj.onreadystatechange = function (){
			if (xmlObj.readyState == 4){
				(xmlObj.status == 200)? eval(callBack)(ID,fileName):void(0);
			}
		}
		xmlObj.open('GET', fileName+'?rnd='+Math.ceil(Math.random()*10000) ,true);
		xmlObj.send('');
	}
}
function funcDS(ID,fileName){
	requestFile(fileName,'agrement',ID);
}
function funcDSmini(ID,fileName){
	requestFile(fileName,'agrementmini',ID);
}

/*使用許諾*/
function func_agrement(xml,ID){
	var	xmlObj	= xml.responseXML.getElementsByTagName('product')[0];
	var	agrement= xmlTag(xmlObj,'agrement');
	var	notes	= xmlTag(xmlObj,'notes');

	try{
		(agrement||notes)? $('agr'+ID).style.display='block':void(0);
		(agrement||notes)? reWrite('agr'+ID,'<a href="javascript:openAgree('+ID+')">使用許諾<br>（ご購入前に必ずお読みください）</a>'):void(0);
	}catch( e ){
	//エラー時の処理
	}

}
function func_agrementmini(xml,ID){
//	mAlert(ID)
	var	xmlObj	= xml.responseXML.getElementsByTagName('product')[0];
	var	agrement= xmlTag(xmlObj,'agrement');
	var	notes	= xmlTag(xmlObj,'notes');

	try{
		(agrement||notes)? $('agr'+ID).style.display='block':void(0);
		(agrement||notes)? reWrite('agr'+ID,'<a href="javascript:openAgree('+ID+')">使用許諾</a>'):void(0);
	}catch( e ){
	//エラー時の処理
	}

}

/*************************  情報取得・整形  *************************/
/*																	*/
/*														 2009/01/25 */
/*************************  情報取得・整形  *************************/

/*掲載製品*/
function func_lst(xml,ID,obj,callbackFaunction){
	pageItem	= new Array;
	var	xmlObj	= xml.responseXML.getElementsByTagName('pages')[0];
	var len	= xml.responseXML.getElementsByTagName('page').length;
	for(var i=0; len>i;	i++){
		var	myID	= xmlTag(xmlObj,'page',i);
		pageItem[myID]	= {
			'items'		:xmlTag(xmlObj,'page',i,'item'),
			'topText'	:xmlTag(xmlObj,'page',i,'headline'),
			'btmText'	:xmlTag(xmlObj,'page',i,'bottomline'),
			'script'	:xmlTag(xmlObj,'page',i,'script'),
			'box'		:xmlTag(xmlObj,'page',i,'box')
		}
	}
	var myItem	=pageItem[w.pathname.replace(/index.*?\.html/ig,'')];
	innerID	= myItem.items;
	ecItems	= myItem;

	if(myItem.box){
		cartRemarks.BOX	=myItem.box;
		requestFile('/eshop/books/books.xml','bookBox');
	}
	obj[ID]=true;
	(confirmation(obj))?	eval(callbackFaunction)():void(0);
}

function func_bookBox(xml){
	var	_xmlObj	= xml.responseXML.getElementsByTagName('active')[0];
	var	xmlObj	= _xmlObj.getElementsByTagName('item');
	var	len	= xmlObj.length;
	var	_HTML	= new Array();
	for(var i=0; len>i;	i++){
		var	tempXML	= xmlObj[i].getElementsByTagName('pack1');
		var	bookID	= xmlTag(xmlObj[i],'code');
		var	productID	= xmlTag(tempXML[0],'ID');
		var	myName	= xmlTag(tempXML[0],'ID',0,'name');
		if(cartRemarks.BOX.match(bookID)){
		_HTML[i]	='<div class="bookBox" onclick="location=\'/eshop/books/product.html?ID='+bookID+'\'">';
		_HTML[i]	+='<div><img src="/eshop/books/img/box_01.gif" /></div>';
		_HTML[i]	+='<div class="body">';
		_HTML[i]	+='<p><img src="/cp/img/off_img/ci050g_15off.gif" width="50" height="50" vspace="15"  /><img src="/img/product_img/'+bookID+'_m.gif" width="60" height="80" hspace="5" /><img src="/img/product_img/'+productID+'_s.gif" /></p>';
		_HTML[i]	+='<h2>'+myName+'</h2>';
		_HTML[i]	+='</div>';
		_HTML[i]	+='<div><img src="/eshop/books/img/box_03.gif" /></div>';
		_HTML[i]	+='</div>';
		}
	}

	if($('_EC_cart').innerHTML){
		HTML	= $('_EC_cart').innerHTML+_HTML.join('\n\n');
	}else{
		HTML	= _HTML.join('\n\n');
	}
	
	HTML	+= (EC_bottom_Message)? EC_bottom_Message:'';
	reWrite('_EC_cart',HTML);

}


/*カート情報*/
function func_cart(xml,ID,obj,callbackFaunction){
	cartItem	= new Array();

	var	xmlObj	= xml.responseXML.getElementsByTagName('item');
	var len	= xmlObj.length;
	for(var i=0; len>i;	i++){
		var	myID	= xmlTag(xmlObj[i],'id');
		cartItem['i'+myID]	= new constructXML(xmlObj[i]);
	}
	obj[ID]=true;
	(confirmation(obj))?	eval(callbackFaunction)():void(0);
}

/*製品マスター*/
function func_title_list(text,ID,obj,callbackFaunction){

	ec_titles= new Array();
	var	txt	= text.responseText;
	var temp=txt.split('\n');
	for(var i=0; temp.length>i; i++){
		temp[i]=temp[i].split('\t');
		ec_titles['i'+temp[i][0]]=new ec_makeTitles(temp[i]);
	}

	obj[ID]=true;
	(confirmation(obj))?	eval(callbackFaunction)():void(0);
}


/***************************  カート全体  ***************************/
/*																	*/
/*														 2009/01/27 */
/***************************  カート全体  ***************************/
function makeCrats(){
	var	ID			= ecItems.items.toString().split(',');	//掲載商品IDの抽出
	var _HTMLobj	={
		"topHTML":(ecItems.topText)? ecItems.topText:"",
		"btmHTML":(ecItems.btmText)? ecItems.btmText:""
	}

	itemNums		= ID.length;
	var	cartArray	= new Array();
	for(var i=0; ID.length>i;	i++){
		/************************　諸品情報 初期化　************************/
		var	_ID			= ID[i].toString().split('|'); //ID情報を分解
		var	myID		= _ID[0];						//製品コード
		var	_CODE		= 'i'+myID.split('-')[0];			//製品コード
		var	itemID		= 'i'+myID;						//呼び出し用ID
//			tAlert(itemID)
		var	obj			= cartItem[itemID];				//製品オブジェクト
//			tAlert(obj)
		var masterObj	= ec_titles[_CODE];				//製品マスターオブジェクト
		var selectCart	= _ID[1];						//メディア指定
		if(!selectCart){								//メディア指定が無い場合、情報と照らし合わせて、情報を指定
			selectCart	= new String();
			if(obj){
				if(!args.lef){
					selectCart	+=	(xmlTag(obj.romXML,	'ID'))?	'R':'';	//ROM版
					selectCart	+=	(xmlTag(obj.usbXML,	'ID'))?	'U':'';	//USB版
					selectCart	+=	(xmlTag(obj.sdXML,	'ID'))?	'M':'';	//SD版
				}
				selectCart	+=	(xmlTag(obj.dsXML,	'ID'))?	'S':'';	//ダウンストール版
				if(!(xmlTag(obj.dsXML,	'ID'))){
					selectCart	+=	(xmlTag(obj.dlXML,	'ID'))?	'L':'';	//ダウンロード版
				}
				selectCart	+=	(xmlTag(obj.res1XML,	'ID'))?	'E1':'';	//ダウンストール版
				selectCart	+=	(xmlTag(obj.res2XML,	'ID'))?	'E2':'';	//ダウンストール版
			}
		}
		if(cartItem[itemID]){
			cartItem[itemID].cartNum	= new Number()		
			cartItem[itemID].DS				= (selectCart.match(/S/))?		true: false;
			cartItem[itemID].DLcart		= (selectCart.match(/S|L/))?	true: false;
			cartItem[itemID].ROMcart	= (selectCart.match(/R|U/))?	true: false;
			cartItem[itemID].REScart	= (selectCart.match(/E/))?		true: false;
			cartItem[itemID].cartNum	+= (selectCart.match(/S/))? 1:0;
			cartItem[itemID].cartNum	+= (selectCart.match(/L/))? 1:0;
			cartItem[itemID].cartNum	+= (selectCart.match(/R/))? 1:0;
			cartItem[itemID].cartNum	+= (selectCart.match(/U/))? 1:0;
			cartItem[itemID].cartNum	+= (selectCart.match(/M/))? 1:0;
			cartItem[itemID].cartNum	+= (selectCart.match(/E1/))? 1:0;
			cartItem[itemID].cartNum	+= (selectCart.match(/E2/))? 1:0;
		}else{
			
			}
		
		if(cartRemarks.DS){}else{
			cartRemarks.DS=(cartItem[itemID].DS)?true:false;
		}

		var pImgSize	= _ID[2];						//パッケージイメージのサイズ
		pImgSize=(pImgSize)?	pImgSize	:'m';		//指定が無い場合は「m」サイズ
		var imgID		= _ID[3];						//表示パッケージの製品コード
		imgID=(imgID)?			imgID		:myID;		//指定が無い場合は「製品コード」
		var pVisible	= _ID[4];						//価格情報の表示非表示
		obj.pVisible=(pVisible)?	true:false;		//指定が無い場合は「表示」
		var iVisible	= _ID[5];						//パケ画の表示非表示
		obj.iVisible=(iVisible)?	false:true;		//指定が無い場合は「表示」
		var hVisible	= _ID[6];						//ヘッダー情報の表示非表示
		obj.hVisible=(hVisible)?	false:true;		//指定が無い場合は「表示」
		var oVisible	= _ID[7];						//％OFF情報の表示非表示
		obj.oVisible=(oVisible)?	false:true;		//指定が無い場合は「表示」
		var cVisible	= _ID[8];						//カートに入れる
		obj.cVisible=(cVisible)?	cVisible:false;		//指定が無い場合は「カート/予約」
		var nVisible	= _ID[9];						//製品名指定
		obj.nVisible=(nVisible)?	nVisible:false;		//指定が無い場合は本来の製品名
		var packVisible	= _ID[10];						//カートを隠す
		obj.packVisible=(packVisible)?	true:false;	//指定が無い場合はパッケージカートを隠さない
		
		/**製品コードから製品名を取得							**/
		/**商品IDデータベースに該当IDが無い場合はそのIDを告知	**/
		try{
			myName		= obj.name
		}catch( e ){
			mAlert('商品IDデータベースに、製品コード「'+myID+'」がありません。')
		}
		myName	=	(obj.nVisible)? obj.nVisible:myName;				//商品名
		/**製品マスターから発送日、商品IDを取得					**/
		/**製品マスターに該当IDが無い場合はそのIDを告知			**/
		try{
			var	itemHassoubi	= masterObj.hatsubaibi.replace(/\//ig,'');
			var	basePrice		= masterObj.price.toString().replace(/[^\d]/ig,'');
		}catch( e ){
			mAlert('製品マスターに、「'+obj.name+'/'+myID+'」がありません。');
			end();
		}
		/*	プライオリティを取得													*/
		/*	指定があればその値を入れる。指定が無い場合は、DL>USB>ROM>DSの順で設定	*/
		/*	標準設定より、指定値のほうが優先される									*/
		var	romP	= (xmlTag(obj.XML,'rom',0,'priority'))?	xmlTag(obj.XML,'rom',0,'priority')*1+10	:12;
		var	usbP	= (xmlTag(obj.XML,'usb',0,'priority'))?	xmlTag(obj.XML,'usb',0,'priority')*1+10	:13;
		var	sdP		= (xmlTag(obj.XML,'sd',0,'priority'))?	xmlTag(obj.XML,'sd',0,'priority')*1+10	:14;
		var	dlP		= (xmlTag(obj.XML,'dl',0,'priority'))? 	xmlTag(obj.XML,'dl',0,'priority')*1+10	:10;
		var	dsP		= (xmlTag(obj.XML,'ds',0,'priority'))? 	xmlTag(obj.XML,'ds',0,'priority')*1+10	:11;
		var	r1P		= (xmlTag(obj.XML,'Reserve1',0,'priority'))? 	xmlTag(obj.XML,'Reserve1',0,'priority')*1+10	:15;
		var	r2P		= (xmlTag(obj.XML,'Reserve2',0,'priority'))? 	xmlTag(obj.XML,'Reserve2',0,'priority')*1+10	:16;
		
		/*カート周辺文言系*/
		var	pImg	= makePimg(imgID,myName,pImgSize)	//パケ画
		var	newItem	= (itemHassoubi>dAll)?'<p class="EC_yoyaku">'+masterObj._hatsubaibi+'新発売</p>':'';//新発売文言
		newItem	= (obj.hVisible)? '':newItem;
		var	myItemhead	= new String();	//最上部文言
		if(cartItem[itemID].itemhead){
			var	str = cartItem[itemID].itemhead;
			var	t	= w.pathname.replace(/index\.html|index.+?\.html/,'');
			var	re = new RegExp('<a href="'+t+'">(.+?)<\/a>', 'ig');
			var	_myItemhead	= str.replace(re,'$1')
			myItemhead	=	'<div class="itemhead">\n'+_myItemhead+'</div>';
		}
		var underText	= (obj.txt)?	'<p class="f70">'+obj.txt+'</p>\n':'';/*パッケージ画像下文言*/


		/************************　カート作成　************************/

		if(args.lef){
			if(cartItem[itemID].DLcart){


			var	myCart	= new Array();
	
			myCart[0]	=	'<div class="EC_cartItem" ID="'+itemID+'">\n';
			myCart[0]	+=	newItem
			myCart[0]	+=	'<div class="cartHead">\n';
			myCart[0]	+=	myItemhead;
			/*パッケージ画像*/
			/*商品点数（ID.length）が2製品以上なら、製品管理シートの画像表示チェックを確認*/
			/*商品点数（ID.length）が1製品のみなら、問答無用で非表示*/
				myCart[0]	+=	(obj.iVisible)?	'<p ID="EC_cart_top_img">'+pImg+'</p>\n':'<p ID="EC_cart_top_img" style="display:none;">'+pImg+'</p>\n';//パッケージ画像
				myCart[0]	+=	(ID.length>0)? '<h2>'+wiki(myName.replace(/\n/ig,'<br />'))+'</h2>\n':'<div>\n';
				myCart[0]	+=	underText;

				myCart[0]	+=	'\n</div>\n';
			/*	myCart[0]	+=	(obj.pVisible)?	'<p ID="EC_price_'+i+'" class="f70">標準価格&nbsp;'+ketatori(basePrice)+'円</p>\n</div>\n':'<p ID="EC_price_'+i+'" class="f70" style="display:none;">標準価格&nbsp;'+ketatori(basePrice)+'円</p>\n</div>\n';	*/
			/*	XMLデータをカートデータに変換	*/

			var	myDL	= (selectCart.match(/L/))? xml2cart(obj.dlXML,'DL',myID)	:'';
			var	myDS	= (selectCart.match(/S/))? xml2cart(obj.dsXML,'DS',myID)	:'';
			
			var myR1	=''
			var myR2	=''
			/*	予備	*/
			if(xmlTag(obj.res1XML,'ID')){
				var	myName	= xmlTag(obj.res1XML,'ID',0,'name');
				var	_myID	= myName.split('|');
				if(_myID[1]=='n'){
						var	myR1	= xml2cart(obj.res1XML,'non',myID);
				}else{
					if(myName.match(/ストール/)){
						var	myR1	= xml2cart(obj.res1XML,'DS',myID);
					}else if(myName.match(/ダウン/)){
						var	myR1	= xml2cart(obj.res1XML,'DL',myID);
					}else if(myName.match(/オンライン/)){
						var	myR1	= xml2cart(obj.res1XML,'ON',myID);
					}else if(myName.match(/USB/)){
						var	myR1	= xml2cart(obj.res1XML,'USB',myID);
					}else if(myName.match(/SD/)){
						var	myR1	= xml2cart(obj.res1XML,'SD',myID);
					}else{
						var	myR1	= xml2cart(obj.res1XML,'ROM',myID);
					}
				}
			}
			/*	プライオリティに従ってカートの並び順を変更	*/
			myCart[romP]	=	(myROM)?	myROM	:'';
			myCart[usbP]	=	(myUSB)?	myUSB	:'';
			myCart[sdP]		=	(mySD)?		mySD	:'';
			myCart[dlP]		=	(myDL)?		myDL	:'';
			myCart[dsP]		=	(myDS)?		myDS	:'';
			myCart[r1P]		=	(myR1)?		myR1	:'';
			myCart[r2P]		=	(myR2)?		myR2	:'';
			/*	製品としての注意事項	*/
			cartArray[i]=myCart.join('')+'</div>\n\n';
			makeAttention(obj.attention,myName);
		}
	}else{

		var	myCart	= new Array();
//		var	pImg	= makePimg(imgID,myName,pImgSize)

		myCart[0]	=	'<div class="EC_cartItem" ID="'+itemID+'">\n';
		myCart[0]	+=	'<div class="cartHead">\n';
		if(cartItem[itemID].itemhead){
			var str = cartItem[itemID].itemhead;
			var	t	= w.pathname.replace(/index\.html|index.+?\.html/,'');
			var re = new RegExp('<a href="'+t+'">(.+?)<\/a>', 'ig');
			var	myItemhead	= str.replace(re,'$1')
			myCart[0]	+=	'<div class="itemhead">\n'+myItemhead+'\n</div>';
		}

		if(itemHassoubi>dAll){
			if(obj.hVisible){
				myCart[0]	+=	'<p class="EC_yoyaku">'+masterObj._hatsubaibi+'新発売</p>'
			}
		}

		/*パッケージ画像下文言*/
		var underText	= (obj.txt)?	'<p class="f70">'+obj.txt+'</p>\n':'';

		/*パッケージ画像*/
		/*商品点数（ID.length）が2製品以上なら、製品管理シートの画像表示チェックを確認*/
		/*商品点数（ID.length）が1製品のみなら、問答無用で非表示*/
			myCart[0]	+=	(obj.iVisible)?	'<p ID="EC_cart_top_img">'+pImg+'</p>\n':'<p ID="EC_cart_top_img" style="display:none;">'+pImg+'</p>\n';//パッケージ画像
			myCart[0]	+=	(ID.length>0)? '<h2>'+wiki(myName.replace(/\n/ig,'<br />'))+'</h2>\n':'<div>\n';
			myCart[0]	+=	underText;
			myCart[0]	+=	'\n</div>\n';

		/*	myCart[0]	+=	(obj.pVisible)?	'<p ID="EC_price_'+i+'" class="f70">標準価格&nbsp;'+ketatori(basePrice)+'円</p>\n</div>\n':'<p ID="EC_price_'+i+'" class="f70" style="display:none;">標準価格&nbsp;'+ketatori(basePrice)+'円</p>\n</div>\n';	*/

		/*	XMLデータをカートデータに変換	*/
//		mAlert(selectCart);
		var	myROM	= (selectCart.match(/R/))? xml2cart(obj.romXML,'ROM',myID)	:'';
		var	myUSB	= (selectCart.match(/U/))? xml2cart(obj.usbXML,'USB',myID)	:'';
		var	mySD	= (selectCart.match(/M/))? xml2cart(obj.sdXML,'SD',myID)	:'';
		var	myDL	= (selectCart.match(/L/))? xml2cart(obj.dlXML,'DL',myID)	:'';
		var	myDS	= (selectCart.match(/S/))? xml2cart(obj.dsXML,'DS',myID)	:'';
		var myR1	=''
		var myR2	=''

		/*	予備	*/
		if(xmlTag(obj.res1XML,'ID')){
			var	myName	= xmlTag(obj.res1XML,'ID',0,'name');
			var	_myID	= myName.split('|');
			if(_myID[1]=='n'){
					var	myR1	= xml2cart(obj.res1XML,'non',myID);
			}else{
				if(myName.match(/ストール/)){
					var	myR1	= xml2cart(obj.res1XML,'DS',myID);
				}else if(myName.match(/ダウン/)){
					var	myR1	= xml2cart(obj.res1XML,'DL',myID);
				}else if(myName.match(/オンライン/)){
					var	myR1	= xml2cart(obj.res1XML,'ON',myID);
				}else if(myName.match(/USB/)){
					var	myR1	= xml2cart(obj.res1XML,'USB',myID);
				}else if(myName.match(/SD/)){
					var	myR1	= xml2cart(obj.res1XML,'SD',myID);
				}else{
					var	myR1	= xml2cart(obj.res1XML,'ROM',myID);
				}
			}
		}
		myR1	=(selectCart.match(/E1/))? myR1:''
		myR2	=(selectCart.match(/E2/))? myR2:''

		/*	プライオリティに従ってカートの並び順を変更	*/
		myCart[romP]	=	(myROM)?	myROM	:'';
		myCart[usbP]	=	(myUSB)?	myUSB	:'';
		myCart[sdP]		=	(mySD)?		mySD	:'';
		myCart[dlP]		=	(myDL)?		myDL	:'';
		myCart[dsP]		=	(myDS)?		myDS	:'';
		myCart[r1P]		=	(myR1)?		myR1	:'';
		myCart[r2P]		=	(myR2)?		myR2	:'';



		/*	製品としての注意事項	*/
		cartArray[i]=myCart.join('')+'</div>\n\n';
		makeAttention(obj.attention,myName);
	}


/*lefチェック完了*/
	}
/** 洗い出し完了 **/

	var myAttention	=attentionChk(productAttention);

	var	CartItems		= cartArray.join('');
	var	CartRemarksHTML	= makeCartRemarks_HTML();

	var	HTML=oshirasetop;	
	HTML += _HTMLobj.topHTML+CartItems + '<div id="EC_UBOX">\n'+CartRemarksHTML+'<div id="attention">\n'+myAttention+'</div>\n</div>'+_HTMLobj.btmHTML;
	
/***/

/***/

	if($('_EC_cart').innerHTML){
		HTML	= HTML+'\n\n'+$('_EC_cart').innerHTML;
	}

/* 注意書き文言
	HTML	+=makeAtP('');
*/

	HTML	+= oshirase;
	HTML	+= (EC_bottom_Message)? EC_bottom_Message:'';
	reWrite('_EC_cart',HTML);
}

/************************  注意書きチェック  ************************/
/*																	*/
/*														 2009/02/09 */
/************************  注意書きチェック  ************************/
function attentionChk(array){
	var	_attention	= new String();
	if(itemNums>1){
		for(var i in array.naiyou){
			_attention+=('<p class="kome">※「'+array.naiyou[i].join('」「')+'」 ： '+i+'</p>').replace(/「「/ig,'「').replace(/」」/ig,'」');
		}
	}else if(hash_len(array.seihin)>1){
		for(var i in array.naiyou){
			_attention+='<p class="kome">※'+array.naiyou[i].join('、').replace(/\(\((.+?)\)\)/ig,'$1')+' ： '+i+'</p>';
		}
	}else{
		for(var i in array.naiyou){
			_attention+='<p class="kome">※'+i+'</p>';
		}
	}
	return _attention;
}


/***************************  カート本体  ***************************/
/*																	*/
/*														 2009/01/27 */
/***************************  カート本体  ***************************/
/*


<div id="cd" style="padding: 1px 0pt; background: rgb(255, 255, 204) none repeat scroll 0% 0%; display: none;">
<h4 class="EC_CD"><img src="/img/common_img/ico_cd.gif" style="vertical-align: middle;" width="15" height="15">CD-ROM版</h4>
<p class="EC_Price">標準価格&nbsp;9,800円</p>
<p class="cartBtn_t"><a href="https://www.sourcenext.com/eshop/action/es_cartadd?com_id=SP020636&amp;quantity=1"><img src="/img/clear.gif" alt="カートに入れる" width="138" border="0" height="27"></a></p><br>
</div>

*/

function xml2cart(XML,type,ID){
	/************************　商品情報 初期化　************************/
	var	itemID		= 'i'+ID;
	var	_CODE		= itemID.split('-')[0];

	var obj			= cartItem[itemID];										//製品オブジェクト
	var masterObj	= ec_titles[_CODE];										//製品マスターオブジェクト
	var	basePrice	= masterObj.price.toString().replace(/[^\d]/ig,'');		//標準価格
	var	myPrice		= xmlTag(XML,'ID',0,'price');							//販売価格

	var	myName		= obj.name;				//商品名

	var	_typeName	= getMyName(XML,ID,true).split('|')[0]	;				//タイプ
	var	typeName_	= _typeName.replace(/\(\(.+?\)\)/ig,'')	;				//タイプ
		_typeName	= _typeName.replace(/\(\((.+?)\)\)/ig,'$1');					//タイプ
	var	_off		= Math.floor(100-((myPrice*100)/(basePrice*100))*100);
	if(obj.oVisible){
		var	off			= (_off>=5)?'（'+_off+'％OFF）':'';						//％OFF表記
	}else{
		var	off			= '';						//％OFF表記
	}
	var _uri		= xmlTag(XML,'uri');									//ウリ文言取得
	var	_align		= (_uri)?	_uri.split('|'):false;
	var	align		= (_align)? _uri[1]:'left';
	
	var	URInowTime	=slashDobj(time.toString().replace(/(\d{4})(\d{2})(\d{2})\d{2}/,'$1/$2/$3'));
	var	_URItObj	=(_uri)? _align[0].match(/\(\(\d{4}\/\d{2}\/\d{2}\)\)/):false;
	
	if(_URItObj){
		var	URItObj		= slashDobj(_align[0].match(/\d{4}\/\d{2}\/\d{2}/));
		var	URIsabun	= (URItObj.getTime() -URInowTime.getTime());
		if(URIsabun>0){
			_align[0]	= _align[0].replace(/\(\(\d{4}\/\d{2}\/\d{2}\)\)/ig,'')
		}else{
			_uri	= false;
		}
	}
			

	var	uri			= (_uri)?'<p class="f80" style="margin:0 0 0.5em; text-align:'+align+';">'+_align[0]+'</p>':'';					//ウリ文言取得
	var	_pName		= xmlTag(XML,'ID',0,'pName');							//商品カート名取得
	
	var	pName		= (off>=20&&!off==100)? '特別価格': '標準価格';			//商品カート名自動取得
		pName		= (_pName)? _pName:pName;								//商品カート名は指定したものが優先する
	
	var	_comID		= (xmlTag(XML,'ID'))? xmlTag(XML,'ID').split('|'):false;							//商品IDの元
	var	comID		= (_comID)?_comID[0]:false;							//商品ID
	var	comID_D		=(_comID[1])?	_comID[1]:0;							//カート毎の発売日
	var	gien		= (comID.match(/義援/))? true:false;
	var	att			= xmlTag(XML,'attention');								//商品IDに付随する注意書き
	var	cartHead	='<div class="typeBOX" style="margin-top:0;">\n';		//カート周りのヘッダと
	var	cartFoot	='\n</div>';											//フッター

	var _class		= (basePrice <= myPrice)?'EC_Price':'EC_PriceR';		//価格の色用Class（標準価格と販売価格を比較）
	var	HTML		= new String();											//出力用HTML
	var	_cpID		= (type=='DS')? '&campaignID=DS0000000001':'&quantity=1';
	var	itemHassoubi= masterObj.hatsubaibi.replace(/\//ig,'');
	var	_cart_class	= 'cartBtn';
	if(comID_D){
		if(comID_D>dAll){
			_cart_class	= 'yoyaku';
		}
	}else{
		if(itemHassoubi>dAll){
			_cart_class	= 'yoyaku';
		}
	}
	_cart_class	=(obj.cVisible)? obj.cVisible:_cart_class;

	var wSize=	(xmlTag(obj.XML,'file',0,'sizeW'))? '&size='+xmlTag(obj.XML,'file',0,'sizeW'):'';
	var	choURL	='/dl/?i=cho_pro';

	makeCartRemarks(XML,type,ID);											//カート注意書き系の元を作成

	/************************　カート作成　************************/
	/*カート完売表記周りの処置*/
	if(type=='non'){
		var	typeName	= cartType['ROM'].replace(/○○○/,_typeName);
	}else{
		var	_typeName	= (type.match(/ROM/ig))? cartType['_'+type].replace(/○○○/,typeName_):cartType['_'+type];			//ROMの場合、○○○にメディアタイプを反映
		var	typeName	= (type.match(/ROM/ig))? cartType[type].replace(/○○○/,typeName_):cartType[type];					//ROMの場合、○○○にメディアタイプを反映
		
	}

	if(xmlTag(XML,'ID',0,'price')){
		HTML		= '<div class="cBox">\n'
		HTML		+=	(uri)? uri:'';
		HTML		+=	typeName;
		HTML		=	(getMyName(XML,ID,true).match(/ROM||D版/ig))? HTML:HTML.replace(/<img src="\/img\/common_img\/ico_cd.gif" style="vertical-align: middle;" width="15" height="15">/,'');				//ROMの場合、○○○にメディアタイプを反映
	//	tAlert(HTML);

		HTML	+='<table border="0" cellspacing="0" cellpadding="0">'
		HTML	+='<tr><td style="text-align:right;">標準価格</td><td>&nbsp;</td><td>'+ketatori(basePrice)+'円</td></tr>';
		var	_R	= (basePrice==xmlTag(XML,'ID',0,'price'))? '':' R';
		HTML	+='<tr><td style="text-align:right;" class="'+_class+_R+'">'+pName+'</td><td>&nbsp;</td><td class="'+_class+_R+'">'+ketatori(xmlTag(XML,'ID',0,'price'))+'円'+off+'</td></tr>';
		HTML	+=(_typeName.match(/ダウンロード版/))? (_off>50)? '':'<tr class="chowari_tr"><td style="text-align:right;"><a href="'+choURL+'" target="_top">超割加入者なら</a></td><td>&nbsp;</td><td class="R">'+ketatori(basePrice/2)+'円（50％OFF）</td></tr>':'';
		HTML	+='</table>';
	
	/*
		HTML		+= (basePrice!=xmlTag(XML,'ID',0,'price'))? '<p ID="EC_price" class="f70" style="margin:0.3em auto 0.1em;">標準価格&nbsp;'+ketatori(basePrice)+'円</p>':'';
		HTML		+= (_typeName.match(/ダウンロード版/))? '<p class="f70 R" style="line-height: 100%;"><a href="'+choURL+'" target="_top">超割加入者<span style="color: #E00;">なら'+ketatori(basePrice/2)+'円（50％OFF）</span></a></p>':'';
		var	_R	= (basePrice==xmlTag(XML,'ID',0,'price'))? '':' R';
		HTML		+=	'<p class="'+_class+_R+'">'+pName+'&nbsp;'+ketatori(xmlTag(XML,'ID',0,'price'))+' 円'+off+'</p>';
	*/
	/*
		if(login.IsChowari){
			HTML		+=	(_typeName.match(/ダウンロード版/))? '<p class="EC_Price R">超割価格 '+ketatori(basePrice/2)+'円（50％OFF）</p>':'<p class="'+_class+'">'+pName+'&nbsp;'+ketatori(xmlTag(XML,'ID',0,'price'))+' 円'+off+'</p>';
		}else{
			HTML		+=	'<p class="'+_class+'">'+pName+'&nbsp;'+ketatori(xmlTag(XML,'ID',0,'price'))+' 円'+off+'</p>';
		}
	*/
	
	var popUpDS	=(_typeName.match(/ダウン/)&&cartItem[itemID].DS)? 'ダウンストール対応':'カートに入れる';
		if(comID.toString().match(/完売/)){
			HTML	+='<p class="kanbai"><img src="/cp/img/pageitem/kanbai.gif" alt="完売しました" border="0" height="27" width="138"></p>';
		}else if(comID.toString().match(/終了/)){
			HTML	+='<p class="note">終了しました</p>';
		}else if(comID.toString().match(/予約/)){
			HTML	+='<p class="note">'+comID.replace(/SP|KB|DL/ig,'')+'</p>';
		}else{
			if(URLargument.i){
				var	tk	= '?tk=i--'+URLargument.i+'com_id--'+comID;
			}else{
				var	tk	= '';
			}
			if(gien){
				HTML	+='<button type="button" onclick="location.href=\'/\'">義援金サイトへ</button>';
			}else{
				HTML	+='<p class="'+_cart_class+'"><a href="http://www.sourcenext.com/eshop/es_cartadd/?i=sec'+comID+'&com_id='+comID+_cpID+tk+'" target="_top" '+getEventTrack()+'><img src="/img/clear.gif" width="138" height="27" border="0" alt="'+popUpDS+'" title="'+popUpDS+'"></a></p>';
			}
			HTML	+=(type=='DS')? '<p class="note" ID="agr'+ID+'"></p>':'';
			HTML	+=makeAtP(att);
		}
		var	attName	= (itemNums>1)? myName.replace(/^ソースネクスト/,'')+_typeName:_typeName;
		makeAttention(xmlTag(XML,'attention_b'),attName);
		if(cartItem[itemID].DLcart&&cartItem[itemID].cartNum>3){
			HTML	+=	(type.match(/ROM/ig))? '</div>\n':'';
		}
		HTML	+= '</div>\n'
	
		if(obj.packVisible&&type.toString().match(/ROM|USB/ig)){
			var	HTML_head	= '<p id="dl_'+comID+'" style="margin-top: 0pt; font-size: 80%; cursor: pointer;color:#0000ee;" onclick="$(\'dl_'+comID+'\').style.display=\'none\';$(\'pk_'+comID+'\').style.display=\'block\';"><img src="/img/common/icon_open_no.gif" class="icon_next" align="absmiddle" border="0">&nbsp;パッケージ版はこちら</p>';
				HTML_head	+= '<div class="cBox" id="pk_'+comID+'" style="padding: 3px 0pt; display: none; background-color: rgb(224, 239, 255);">';
			var	HTML_foot	= '<p style="margin-top: 1.2em; font-size: 80%; cursor: pointer;color:#0000ee;" onclick="$(\'dl_'+comID+'\').style.display=\'block\';$(\'pk_'+comID+'\').style.display=\'none\';">［閉じる］</p>';
				HTML_foot	+= '</div>';
			HTML=HTML_head+HTML+HTML_foot;
		}
	}
	return HTML;
}

/************************　カート注意書き系　************************/
/*																	*/
/*														 2009/01/27 */
/************************　カート注意書き系　************************/

/*注意書きを生成*/
function makeAttention(attention,myName){
	if(attention){
	var nowTime=slashDobj(time.toString().replace(/(\d{4})(\d{2})(\d{2})\d{2}/,'$1/$2/$3'));
		var tempAttention	= attention.split('|');
		for (var h=0; tempAttention.length>h; h++){
			var	_tObj	= tempAttention[h].match(/\(\(\d{4}\/\d{2}\/\d{2}\)\)/);
			if(_tObj){
			var	tObj	= slashDobj(_tObj.toString().match(/\d{4}\/\d{2}\/\d{2}/));
			var	sabun	= (tObj.getTime() -nowTime.getTime())/(24*60*60*1000);
				if(sabun>0){
					var	naiyou	= tempAttention[h].replace(/\(\(\d{4}\/\d{2}\/\d{2}\)\)/ig,'');
					try{productAttention.naiyou[naiyou].push(myName);}
					catch( e ){productAttention.naiyou[naiyou]=new Array(myName);}
					try{productAttention.seihin[myName].push('-');}
					catch( e ){productAttention.seihin[myName]=new Array('-');}
				}
			}else{
				var	naiyou	= tempAttention[h];
				try{productAttention.naiyou[naiyou].push(myName);}
				catch( e ){productAttention.naiyou[naiyou]=new Array(myName);}
				try{productAttention.seihin[myName].push('-');}
				catch( e ){productAttention.seihin[myName]=new Array('-');}
			}
		}
	}
}


function makeCartRemarks(XML,type,ID){
	/*メディア判別*/
	var	obj=cartItem['i'+ID]
	var	_myName		= obj.name.replace(/\n|\r/ig,'');				//商品名
	var	myName	= '「'+_myName+'」';
		type 	= (type=='ROM')? 	getMyName(XML,ID,true)	:type;
		type 	= (type=='USB')?	'USBメモリ版'			:type;
		type 	= (type=='SD')?		'microSD版'				:type;
		type 	= (type=='ON')? 	'オンライン版'			:type;
		type 	= (type=='DS')? 	'ダウンロード版'		:type;
		type 	= (type=='DL')? 	'ダウンロード版'		:type;
	var	myNameM	= '「'+_myName+'&nbsp;'+type.replace(/\(\(.+?\)\)/ig,'')+'」';
	/*メディア情報登録*/
	try{cartRemarks.type[type].push(myName);}
	catch( e ){cartRemarks.type[type]=new Array(myName);}

	if(type.match(/ダウン/)){
		var	mySize=	new String();
		var	_myWsize =xmlTag(obj.XML,'file',0,'sizeW');
		var	_myMsize =xmlTag(obj.XML,'file',0,'sizeM');
		var	_myLsize =xmlTag(obj.XML,'file',0,'sizeL');
		if(_myMsize||_myLsize){
			mySize	=	'<br />';
			mySize	+=	(_myWsize)?'<p class="ec_kome">・&nbsp;Windows版/<a href="javascript:sizeWindow('+_myWsize+');">'+_myWsize+'</a>MB</p>\n':''
			mySize	+=	(_myMsize)?'<p class="ec_kome">・&nbsp;Macintosh版/<a href="javascript:sizeWindow('+_myMsize+');">'+_myMsize+'</a>MB</p>\n':''
			mySize	+=	(_myLsize)?'<p class="ec_kome">・&nbsp;Linux版/<a href="javascript:sizeWindow('+_myLsize+');">'+_myLsize+'</a>MB</p>\n':''
		}else{
			mySize=(_myWsize)? '<a href="javascript:sizeWindow('+_myWsize+');">'+_myWsize+'MB</a>':'ダウンロードサイズ未定'
		}
		/*ダウンロードサイズの注意書き1Gを超える場合に注意書き表示*/
		try{
			//Script
			if(_myWsize>1000){
				var	naiyou	= 'ダウンロードサイズが大きいため、ダウンロード完了まで時間がかかる場合があります。あらかじめ<a href="javascript:sizeWindow('+_myWsize+');">ダウンロード予測時間</a>をご確認ください。';
				try{productAttention.naiyou[naiyou].push(myName);}
				catch( e ){productAttention.naiyou[naiyou]=new Array(myName);}
				try{productAttention.seihin[myName].push('-');}
				catch( e ){productAttention.seihin[myName]=new Array('-');}
			}
		}catch( e ){
			tAlert('サイズのエラー');
		}

		cartRemarks.size[myName]=mySize
		try{cartRemarks.d_head[type].push(myNameM);}
		catch( e ){cartRemarks.d_head[type]=new Array(myNameM);}
	}else if(type.match(/オンライン/)){
	}else if(!type.match(/non/)){
		/*発送日*/
		var	_myHassoubi	= xmlTag(XML,'ID',0,'hassoubi');						//発送日取得
		var	myHassoubi	= (_myHassoubi)?	ckhHassou(_myHassoubi):'即日発送';	//発送日設定
	
		/*送料*/
		var	_mySouryou	= xmlTag(XML,'ID',0,'souryou');							//送料取得
		var	mySouryou	= (_mySouryou)?		_mySouryou:'490';					//送料設定
	
		/*送料*/
		var	_myHassou	= xmlTag(XML,'ID');										//送料取得
		if(_myHassou.match(/SP/)||_myHassou.match(/KB/)){
			var	myHassou	=(_myHassou.match(/SP/))? '宅配便':'メール便';		//送料設定
		}
	
		try{cartRemarks.souryou[mySouryou].push(myNameM);}
		catch( e ){cartRemarks.souryou[mySouryou]		=new Array(myNameM);	cartRemarks._souryou[mySouryou]		=new Array(myName);}
	
		try{cartRemarks.hassoubi[myHassoubi].push(myNameM);cartRemarks._hassoubi[myHassoubi].push(myName);}
		catch( e ){cartRemarks.hassoubi[myHassoubi]	=new Array(myNameM);	cartRemarks._hassoubi[myHassoubi]	=new Array(myName);}
	
		try{cartRemarks.hassou[myHassou].push(myNameM);cartRemarks._hassou[myHassou].push(myName);}
		catch( e ){cartRemarks.hassou[myHassou]	=new Array(myNameM);	cartRemarks._hassou[myHassou]	=new Array(myName);}

		try{cartRemarks.r_head[type].push(myNameM);}
		catch( e ){cartRemarks.r_head[type]=new Array(myNameM);}
	}

}

function makeCartRemarks_HTML(){
	/*初期設定*/
	var	rH	=(hash_len(cartRemarks.r_head)>=2)?2:hash_len(cartRemarks.r_head);
	var	dH	=(hash_len(cartRemarks.d_head)>=2)?2:hash_len(cartRemarks.d_head);

	var	cartRemarkHTML	=	new String()
		/*ダウンロード系の処理*/
		if(cartRemarksBoxHead[dH][rH]){
			cartRemarkHTML	+=	'<h4>';
			for (var i in cartRemarks.d_head) {cartRemarkHTML+='、'+i}
			cartRemarkHTML	+=	'</h4>\n';

			var tempHTML	= new String();
			tempHTML='<div ID="cartRemarksD">\n';
			var	len	= hash_len(cartRemarks.size);
			if(len<=1){
				tempHTML+='ダウンロードサイズ：';
			}else{
				tempHTML+='ダウンロードサイズ：<br />';
			}
			for (var i in cartRemarks.size) {
				if(len<=1){
					tempHTML+= cartRemarks.size[i];
				}else{
					tempHTML+= '<p class="ec_kome">・&nbsp;'+i+'/'+cartRemarks.size[i]+'</p>';
				}
			}
			tempHTML+=(cartRemarks.DS)?'<p style=" margin:0.5em auto; text-align:center;"><img src="/img/common_img/ico_ds.gif" style="vertical-align: middle;" width="15" height="15">は<a href="javascript:openDS()">ダウンストール対応製品</a>です</p>':'';
			tempHTML+='</div>\n\n';
			
			cartRemarkHTML+=tempHTML;
		}
		/*パッケージ系の処理*/
		if(cartRemarksBoxHead[rH][dH]){
			cartRemarkHTML	+=	'<h4>';
			for (var i in cartRemarks.r_head) {cartRemarkHTML+='、'+i}
			cartRemarkHTML	+=	'</h4>\n';
			cartRemarkHTML	+=	'<table border="0" cellpadding="0" cellspacing="0" id="cartRemarksR">\n<tbody>\n<tr valign="top"><td colspan="3"><div style="margin: 0.75em 0pt; background: transparent url(/cp/img/pageitem/sokujitu_no.gif) no-repeat scroll left top; padding-left: 25px;">';
			cartRemarkHTML	+=	(hash_len(cartRemarks.r_head)>1)?hashSort(cartRemarks.hassoubi):hashSort(cartRemarks._hassoubi);
			cartRemarkHTML	+=	'</div></td></tr>\n';
			cartRemarkHTML	+=	'<tr valign="top"><td nowrap="nowrap">送料</td><td>：</td><td>';
			cartRemarkHTML	+=	(hash_len(cartRemarks.r_head)>1)?hashSort(cartRemarks.souryou):hashSort(cartRemarks._souryou);
			cartRemarkHTML	+=	'</td></tr>\n';
			cartRemarkHTML	+=	'<tr valign="top"><td nowrap="nowrap">発送方法</td><td>：</td><td>';
			cartRemarkHTML	+=	(hash_len(cartRemarks.r_head)>1)?hashSort(cartRemarks.hassou):hashSort(cartRemarks._hassou);
			cartRemarkHTML	+=	'</td></tr>\n';
			cartRemarkHTML	+=	'</tbody></table>\n\n';
		}
		cartRemarkHTML	+=	'<p class="caption">価格はすべて税込価格です</p>\n'
		cartRemarkHTML	=	cartRemarkHTML.replace(/>、/ig,'>');
		cartRemarkHTML	=	cartRemarkHTML.replace(/\(\((.+?)\)\)/ig,'$1');
		cartRemarkHTML	=	cartRemarkHTML.replace(/無料/ig,'<span class="r">無料</span>');
		if(itemNums<=1){
		cartRemarkHTML	=cartRemarkHTML.replace(/「.+?(CD-ROM版)」/ig,'$1');
		cartRemarkHTML	=cartRemarkHTML.replace(/「.+?(USBメモリ版)」/ig,'$1');
		cartRemarkHTML	=cartRemarkHTML.replace(/「.+?(DVD-ROM版)」/ig,'$1');
		cartRemarkHTML	=cartRemarkHTML.replace(/「.+?(CD\/DVD-ROM版)」/ig,'$1');
		}//1製品だけだったときの処理
	return cartRemarkHTML;

}

function hashSort(hash){
	var	HTML	= new String();
	var	temp	= new Array();
	var	num		= new Number();
	var tLeng	= new Number();
	
	for (var i in hash) {temp[num++]=new Array((1000000+hash[i].length),i,hash[i]); tLeng+=hash[i].length;}

	temp.sort();	//一旦ソートしないとうまく逆順にソートできなかったので。
	(num==tLeng)?void(0):temp.reverse();
	for(var i=0; temp.length>i;	i++){
		var tempPrice	= (temp[i][1]>0)? ketatori(temp[i][1])+'円（<a href="/e-shop/membership/" target="_top">ゴールド会員</a>'+ketatori((temp[i][1]/2))+'円）':temp[i][1];
		HTML+=(i>0)? temp[i][2].join('')+'は'+tempPrice+'<BR />\n':tempPrice+'<BR />\n';
	}
	HTML	= HTML.replace(/<BR \/>\n$/ig,'');
	return HTML;
}

/*	発送情報系　作成	*/
function _makeCartRemarks(t){
	var	HTMLhead	='\n\n<div id="EC_UBOX">\n<p class="caption">価格はすべて税込価格です</p>\n';

	var	HTML		='<h4>';
		
	for (var i in cartRemarks.media) {
		HTML	+=i+'、';
	}
	var	tempArray	= new Array();
	var	num			= new Number();
	var	len	= hash_len(cartRemarks.hassoubi);
		HTML+='</h4>\n\n<table style="margin: 0pt auto;" border="0" cellpadding="0" cellspacing="0">\n<tbody>\n<tr valign="top"><td colspan="3"><div style="margin: 0.75em 0pt; background: url(/cp/img/pageitem/sokujitu_no.gif) no-repeat left top; padding-left: 25px;">';
	for (var i in cartRemarks.hassoubi) {
		if(len<=1){
			tempArray[cartRemarks.h_num[i]*10-num++]+=i;
		}else{
//			mAlert(i+':'+cartRemarks.hassoubi[i]);
			var h	= (i=='即日発送')? '':'<span style=" font-weight:bold;">'+wiki(cartRemarks.hassoubi[i].replace(/undefined、/ig,''))+'は';
			var b	= (i=='即日発送')? '':'</span>';
			tempArray[cartRemarks.h_num[i]*10-num++]+= (h+i+b+'<br />');
		}
	}
	tempArray.reverse();

	try{
		tempArray[0]=tempArray[0].replace(/.+?は★★★★(.+?)/ig,'$1');
	}catch( e ){
	//エラー時の処理
	}


	HTML+=tempArray.join('');

	HTML+='</div></td></tr>\n';
	HTML+='<tr valign="top"><td nowrap="nowrap">送料</td><td>：</td><td>';
	var	tempArray	= new Array()
	var	num			= new Number()
	var	len	= hash_len(cartRemarks.souryou);
	for (var i in cartRemarks.souryou) {
		var	temp	= (i=='無料')? '<span class="R">無料</span>':i+'円（<a href="/e-shop/membership/" target="_top">ゴールド会員</a>'+(i*0.5)+'円）';
		if(len<=1){
			tempArray[cartRemarks.s_num[i]*10-num++]	+= temp;
		}else{
			var h	=	wiki(cartRemarks.souryou[i])+'は★★★★';
			tempArray[cartRemarks.s_num[i]*10-num++]	+= h+temp+'<br />';
		}
	}
	tempArray.reverse();

	try{
	var	temp=tempArray[0].replace(/\n|\r/ig,'★');
//		mAlert(temp+'\n-----\n'+temp.match(/「.+」は★★★★(.+?)/ig));
	
	tempArray[0]=temp.replace(/^.+」は★★★★(.+?)/ig,'$1');
	}catch( e ){
	//エラー時の処理
	}

	HTML+=tempArray.join('');
	HTML+='</td></tr>\n';
	HTML+='<tr valign="top"><td nowrap="nowrap">発送方法</td><td>：</td><td>';

	var	tempArray	= new Array()
	var	num			= new Number()
	var	len	= hash_len(cartRemarks.hassou);
	for (var i in cartRemarks.hassou) {
		if(len<=1){
			tempArray[cartRemarks.a_num[i]*10-num++]	+= i;
		}else{
			var h	=	wiki(cartRemarks.hassou[i])+'は★★★★';
			tempArray[cartRemarks.a_num[i]*10-num++]	+= h+i+'<br />';
		}
	}
	tempArray.reverse();

	try{
		tempArray[0]=tempArray[0].replace(/.+?は★★★★(.+?)/ig,'$1');
	}catch( e ){
	//エラー時の処理
	}

	HTML+=tempArray.join('');


	HTML+='</td></tr>';
	HTML+='</table>\n\n';
	
	var	len	= hash_len(cartRemarks.file);
	if(len>0){
		var tempHTML	= new String();
		tempHTML+='<div id="cartRemarksBOX">\n<h4>'
		var	len	= hash_len(cartRemarks.file);
		for (var i in cartRemarks.file) {
			if(len<=1){
				tempHTML+= i;
			}else{
				tempHTML+= i+'、';
			}
		}
		tempHTML+='</h4>\n';
		tempHTML+='<table style="margin: 0pt;" border="0" cellpadding="0" cellspacing="0" ID="cartRemarks">\n';
		tempHTML+='<tbody>\n';
		var	len	= hash_len(cartRemarks.size);
		if(len<=1){
			tempHTML+='ダウンロードサイズ：';
		}else{
			tempHTML+='ダウンロードサイズ：<br />';
		}
		for (var i in cartRemarks.size) {
			if(len<=1){
				tempHTML+= cartRemarks.size[i];
			}else{
				tempHTML+= '<p class="kome">・&nbsp;'+i+'/'+cartRemarks.size[i]+'</p>';
			}
		}
		tempHTML+='</td></tr>\n';
		tempHTML+='</tbody>\n';
		tempHTML+='</table>\n</div>\n\n';
		tempHTML=(tempHTML.match(/Macintosh|Linux/ig))? tempHTML.replace(/：<\/td><td>/ig,'：'):tempHTML;
	}
	HTML	=	(t==0|t==2)? HTML:'';
	HTML	+=	(t==0|t==1)?'<div ID="EC_DL">'+tempHTML+'</DL>':'';
	return HTMLhead+HTML.replace(/<br \/></,'<').replace(/<br \/>/,'<br \/>\n').replace(/<br \/><\/div>/,'</div>').replace(/、<\//ig,'</').replace(/undefined、/ig,'').replace(/undefined/ig,'').replace(/★★★★/ig,'');
}

/****************************　サブ関数　****************************/
/*																	*/
/*																	*/
/****************************　サブ関数　****************************/

/* 製品イメージ */
function makePimg(ID,name,size){
	var	ID=ID.split('-')[0];
	var	img	= new String();
		img	= '<img src="/img/product_img_dl/'+ID;
	if(size.match(/s|S/)){
		img	+='_s.gif" width="50" height="70"'
	}else if(size.match(/l|L/)){
		img	+='_l.gif" width="100" height="140"'
	}else{
		img	+='_m.gif" width="60" height="80"'
	}
	img	+= ' alt="'+name+'" title="'+name+'" border="0">';
	return(img)
}

/*	製品名取得			*/
function getMyName(XML,ID,type){
	var	myName	= (itemNums>1)?cartItem['i'+ID].name.split('|')[0]:'';
		myName	= (type)?'':myName+'&nbsp;';
	var	myType	= xmlTag(XML,'ID',0,'name');
		myType	= (myType)?myType:'CD-ROM版';
	return	myName+myType;
}

/*ROMの表記確認*/
function romChk(HTML,XML){
	var	myName	= xmlTag(XML,'ID',0,'name');
		myName	= (myName)?myName.replace(/\(\(|\)\)/ig,''):'CD-ROM版';
	var HTML	= HTML.replace(/○○○/ig,myName);
	return	HTML;
}

/*ファイルサイズ取得*/
function getFileSize(XML,ID){
	var	w	= xmlTag(cartItem['i'+ID].XML,'file',0,'sizeW')
	var	m	= xmlTag(cartItem['i'+ID].XML,'file',0,'sizeM')
	var	l	= xmlTag(cartItem['i'+ID].XML,'file',0,'sizeL')
		w	= '<a href="javascript:sizeWindow('+w+');">'+w+'MB</a>';
		m	= (m)? '<p class="ec_kome">・&nbsp;Macintosh版/<a href="javascript:sizeWindow('+m+');">'+m+'MB</a></p>\n'	:'';
		l	= (l)? '<p class="ec_kome">・&nbsp;Linux版/<a href="javascript:sizeWindow('+l+');">'+l+'MB</a></p>\n'		:'';
	var	mySize=(m||l)? '\n<p class="ec_kome">・&nbsp;Windows版/'+w+'</p>\n'+m+l:w+'<br />\n';
	return mySize;
}

/*発送日確認*/
function ckhHassou(num){
	var	dObj	= getDateEX(num);
	var	y = dObj.getYear();
	var	m = dObj.getMonth() + 1;
	var	d = dObj.getDate();
	y	= (y < 2000)?	y + 1900:y;
	var ymd	=y*10000+m*100+d;
	var ymda=m*1+'月'+d*1+'日（'+youbi[dObj.getDay()]+'）発送予定';
	var	ret	= (ymd>dAll)?'<strong>'+ymda+'</strong>':'即日発送';
	return ret;
}

function chk14(num,name){
	var	dObj	= getDateEX(num);
	var	num1	= dOb.getTime();
	var	d		= new Date();
	var	num2	= d.getTime();
}


/*	製品objct	*/
function constructXML(xml){
	this.DS			= false;
	this.DLcart		= true;
	this.ROMcart	= true;
	this.pVisible	= true;
	this.iVisible	= true;
	this.sizeW		= xmlTag(xml,'file',0,'sizeW');
	this.id			= xmlTag(xml,'id');
	this._id		= 'i'+xmlTag(xml,'id');
	this.name		= xmlTag(xml,'id',0,'name');
	this.itemhead	= xmlTag(xml,'itemhead');
	this.attention	= xmlTag(xml,'mainattention');
	this.txt		= xmlTag(xml,'text');
	this.choURL		= xmlTag(xml,'file',0,'choURL');
	this.XML		= xml.getElementsByTagName('product')[0];
	this.romXML		= xml.getElementsByTagName('rom')[0];
	this.usbXML		= xml.getElementsByTagName('usb')[0];
	this.sdXML		= xml.getElementsByTagName('sd')[0];
	this.dlXML		= xml.getElementsByTagName('dl')[0];
	this.dsXML		= xml.getElementsByTagName('ds')[0];
	this.res1XML	= xml.getElementsByTagName('Reserve1')[0];
	this.res2XML	= xml.getElementsByTagName('Reserve2')[0];
	this.lankingXML	= xml.getElementsByTagName('lank')[0];
    this.choPackURL	= function (cID,chID) {
		var _off	= (this.name.match(/超字幕/))? 30:50;
		var mySize	= (this.sizeW)? '&size='+this.sizeW:'';
		var doc	= (time>ec_titles[this._id].hatsubaiNum*100)?'':'&doc=※超割サービスはご購入後すぐにご利用いただけますが、「'+this.name+'」は'+ec_titles[this._id]._hatsubaibi+'よりダウンロードが可能になります。ご了承ください。';
		var tk	= '&tk=pack_'+cID+',DL010820';
		return '/dl/form/?i=ch_'+chID+'&off='+_off+'&id='+this.id+'&price='+ec_titles[this._id].price.replace(/[^\d]/,'')+'&cID='+cID+',DL010820&name='+escape(this.name+mySize+doc)+tk;
    }
}

function end(){
	mAlert('処理を中断しました。')	
}

function openPopup(str){
	if(str){
	$('select').style.display=str;
	$('selectBox').style.display=str;
	}else{
		$('select').style.display=($('select').style.display=='block')? 'none':'block';
		$('selectBox').style.display=($('selectBox').style.display=='block')? 'none':'block';
	}
}


function makeChoLink(ID,name,cID,price,off,size,canID,doc){
	var	name	= escape(name);
	var	size	=(size)?	'&size='+size:'';
	var	doc		=(doc)?		'&doc='+escape(doc):'';
	var	caID	=(caID)?	'&campaignID='+canID:'';
	
	return	'http://www.sourcenext.com/dl/form/?i=jimaku&name='+name+'&cID='+cID+',DL010820&id='+ID+'&off='+off+'&price='+price+size+caID+doc
}

/*************************  情報取得・整形  *************************/
/*																	*/
/*														 2009/01/25 */
/*************************  情報取得・整形  *************************/
/** 商品ID情報 **/
/*製品価格情報整形*/
function func_price(xml,ID,obj,callbackFaunction){
	var	xmlObj	= xml.responseXML.getElementsByTagName('item');
	for(var i=0 ; xmlObj.length>i ;i++){
		var myID		= 'i'+xmlTag(xmlObj[i],'id');
		priceObj[myID]	= new listPriceObj(xmlObj[i]);
	}
//	alert(priceObj.i105030.ecDs.price);
	obj[ID]=true;
	(confirmation(obj))?	eval(callbackFaunction)():void(0);
}
function listPriceObj(xml){
	this.code				=xmlTag(xml,'id');				//製品コード
	this.ecName				=xmlTag(xml,'id',0,'name');		//EC商品名
	this.ecItemHead			=xmlTag(xml,'itemhead');		//製品ヘッダ
	this.ecMainattention	=xmlTag(xml,'mainattention');	//製品注意書き
	this.ecText				=xmlTag(xml,'text');			//製品画像下文言
	this.ecGroup			=xmlTag(xml,'group');			//グループ
	this.ecRomXML			=xml.getElementsByTagName('rom')[0];
	this.ecUsbXML			=xml.getElementsByTagName('usb')[0];
	this.ecSdXML			=xml.getElementsByTagName('sd')[0];
	this.ecDlXML			=xml.getElementsByTagName('dl')[0];
	this.ecDsXML			=xml.getElementsByTagName('ds')[0];
	this.ecRom				=new listMediaObj(this.ecRomXML);
	this.ecUsb				=new listMediaObj(this.ecUsbXML);
	this.ecSd				=new listMediaObj(this.ecSdXML);
	this.ecDl				=new listMediaObj(this.ecDlXML);
	this.ecDs				=new listMediaObj(this.ecDsXML);
	this.ecWsize			=xmlTag(xml,'file',0,'sizeW');
	this.ecLsize			=xmlTag(xml,'file',0,'sizeM');
	this.ecMsize			=xmlTag(xml,'file',0,'sizeL');
	this.ecChoURL			=xmlTag(xml,'file',0,'choURL');
	this.ecItemhead			=xmlTag(xml,'itemhead');

}
function listMediaObj(xml){
	this.uri				=xmlTag(xml,'uri');
	this.cID				=xmlTag(xml,'ID');
	this.pName				=xmlTag(xml,'ID',0,'pName');
	this.price				=xmlTag(xml,'ID',0,'price');
	this.name				=xmlTag(xml,'ID',0,'name');
	this._hassoubi			=xmlTag(xml,'ID',0,'hassoubi');
	this.hassoubi			=getDateEX(xmlTag(xml,'ID',0,'hassoubi'));
	this.hassoubiFormat		=slDobj(getDateEX(xmlTag(xml,'ID',0,'hassoubi')));
	this.hassoubiSNformat	=SNdObj(slDobj(getDateEX(xmlTag(xml,'ID',0,'hassoubi'))));
	this.hassoubiNumber		=this.hassoubiFormat.toString().replace(/\//g,'');
	this.souryou			=xmlTag(xml,'ID',0,'souryou');
	this.attention			=xmlTag(xml,'attention');
	this.attention_b		=xmlTag(xml,'attention_b');
}
