﻿// JavaScript Document

function topBanner(){
	var _value	= '';
	document.write(_value);
}

var	products		= new Object();
var	master			= new Object();
var	POSTAGE			= new Object();
var	SHIPPING_DATE	= new Object();	
var	SHIPPING_METHOD	= new Object();
var	file	= {
	"XML":(w.port>0)?"/eshop/xml/price_.xml":"/eshop/xml/price.xml",
	"TITLE":(w.port>0)?"/titles/test/titlelist_t.txt":"/titles/titlelist.txt"
}

var	nowTime	= time.toString().replace(/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]+)/,'$1/$2/$3');
nowTime	=slashDobj(nowTime);

var	HTML_temp='<div class="cartBOX \
if(@@/SUMMARY/PRICE/@@,{{ }}{{none}})\
">\
if(@@/IMG/@@,{{<div><img src="/img/product_img_dl/@@/IDnum/@@_@@/IMG/@@.gif" border="0"></div>}}{{ }})\
<h2>@@/_NAME/@@</h2>\
<div class="\
if(@@/DL/ID/@@,{{ }}{{none}})\
">\
<h4 class="EC_method_icon DL_@@/ID/@@"><img src="/img/common_img/ico_dl.gif" style="vertical-align: middle; margin-right: 3px;" height="15" width="15">&nbsp;ダウンロード版\
<span style="font-weight:normal;">（<a href="javascript:sizeWindow(@@/SUMMARY/SIZE/WIN/@@)">@,/SUMMARY/SIZE/WIN/,@MB</a>）</span>\
</h4>\
<table border="0" cellspacing="0" cellpadding="0">\
<tr valign="top"><td style="text-align:right;" nowrap>\
<span class="bPrice">標準価格&nbsp;</span></td><td><span class="bPrice">@,/SUMMARY/PRICE/,@円</span>\
</td></tr>\
<tr valign="top" class="\
if(@@/DL/OFF/@@,{{R}}{{ }})\
"><td style="text-align:right;" nowrap>@@/DL/NAME/@@&nbsp;</td><td>@,/DL/PRICE/,@円\
if(@@/DL/OFF/@@,{{（@@/DL/OFF/@@％OFF）}}{{ }})\
</td></tr>\
<tr valign="top" class="\
if(@@/DL/CHO_PRICE/@@,{{R }}{{none }})\
if(@@/DL/CHO/@@,{{ }}{{none}})\
"><td style="text-align:right;" nowrap><a href="/dl/" target="_blank">超割</a>加入者なら&nbsp;</td><td>@,/DL/CHO_PRICE/,@円\
if(@@/DL/OFF/@@,{{（@@/DL/CHO_OFF/@@％OFF）}}{{ }})\
</td></tr>\
</table>\
<div id="CART_BTN_@@/DL/ID/@@" class="cartBtn"><a href="https://www.sourcenext.com/eshop/action/es_cartadd?com_id=@@/DL/ID/@@" target="_top"><img src="/img/clear.gif" alt="カートに入れる" border="0" height="27" width="1"></a></div>\
</div>\
\
<div class="\
if(@@/USB/ID/@@,{{ }}{{none}})\
">\
<h4 class="EC_method_icon"><img src="/img/common_img/ico_umemo.gif" style="vertical-align: middle; margin-right: 3px;" height="12" width="30">USBメモリ版</h4>\
<table border="0" cellspacing="0" cellpadding="0">\
<tr><td style="text-align:right;" nowrap><span class="bPrice">標準価格&nbsp;</span></td><td><span class="bPrice">@,/SUMMARY/PRICE/,@円</span></td></tr>\
<tr class="\
if(@@/USB/OFF/@@,{{R}}{{ }})\
"><td style="text-align:right;" nowrap>@@/USB/NAME/@@&nbsp;</td><td>@,/USB/PRICE/,@円\
if(@@/USB/OFF/@@,{{（@@/USB/OFF/@@％OFF）}}{{ }})\
</td></tr>\
</table>\
<div id="CART_BTN_@@/USB/ID/@@" class="cartBtn"><a href="https://www.sourcenext.com/eshop/action/es_cartadd?com_id=@@/USB/ID/@@" target="_top"><img src="/img/clear.gif" alt="カートに入れる" border="0" height="27" width="1"></a></div>\
</div>\
\
<div class="\
if(@@/ROM/ID/@@,{{ }}{{none}})\
">\
<h4 class="EC_method_icon"><img src="/img/common_img/ico_cd.gif" style="vertical-align: middle; margin-right: 3px;" height="15" width="15">&nbsp;@@/ROM/MEDIA/@@</h4>\
<table border="0" cellspacing="0" cellpadding="0">\
<tr><td style="text-align:right;" nowrap><span class="bPrice">標準価格&nbsp;</span></td><td><span class="bPrice">@,/SUMMARY/PRICE/,@円</span></td></tr>\
<tr class="\
if(@@/ROM/OFF/@@,{{R}}{{ }})\
"><td style="text-align:right;" nowrap>@@/ROM/NAME/@@&nbsp;</td><td>@,/ROM/PRICE/,@円\
if(@@/ROM/OFF/@@,{{（@@/ROM/OFF/@@％OFF）}}{{ }})\
</td></tr>\
</table>\
<div id="CART_BTN_@@/ROM/ID/@@" class="cartBtn"><a href="https://www.sourcenext.com/eshop/action/es_cartadd?com_id=@@/ROM/ID/@@" target="_top"><img src="/img/clear.gif" alt="カートに入れる" border="0" height="27" width="1"></a></div>\
</div>\
\
</div>';

/**/
/*****************************************************
XML取得
postXMLHttpRequest(fileName,ID[,sync,method,sendData])
fileName：読み込むファイル
ID：識別用
sync：同期（未定義でtrue）
method：送信メソッド（未定義でGET）
sendData：送信データ（未定義でnull）
******************************************************/
var	xmlhttp_	= new Object();
function postXMLHttpRequest(URI,ID,sync,callback,method,sendData){
	/*xmlhttpオブジェクト初期化*/
	xmlhttp_[ID]=createXMLHttpRequest(creatXMLhttp);

	/*引数確認*/
	_method		= (method)? method:'GET';
	_sync		= (sync)? 	sync:true;
	_sendData	= (sendData)? sendData:null;

	/*サーバーとの通信*/
	if (xmlhttp_[ID]){
		xmlhttp_[ID].open(_method,URI,_sync);
		var _d=new Date(new Date().setTime(0));
		var _gmtString = _d.toGMTString().replace(/UTC/,'GMT');
		xmlhttp_[ID].setRequestHeader("If-Modified-Since",_gmtString);
		if(_method.match(/post/i)){
			xmlhttp_[ID].setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		}
		xmlhttp_[ID].send(_sendData);
	}

	var _arg	= true;

	/*xmlhttpオブジェクト作成*/
	function creatXMLhttp(){
		if (xmlhttp_[ID].readyState == 4){
			try {
				returnStatus(xmlhttp_[ID].status,eval(callback),xmlhttp_[ID])
			}catch(e){
				return;
			}
		}
	}
}

/*****************************************************
HttpRequestでのステータスコードによる振り分け
returnStatus(statusCode,callback,arg)
statusCode：ステータスコード
callback：コールバック関数名
arg：引数
******************************************************/
function returnStatus(statusCode,callback,xmlhttpObject){
	switch (statusCode) {
	case 200:
		eval(callback)(xmlhttpObject);
		break;
	default:
		eval(callback)(false);
		break;
	}
}

function createXMLHttpRequest(callback){
	var _XMLHttpRequest = null;
	try{
		_XMLHttpRequest = new XMLHttpRequest();
	}catch(e){
		try{
			_XMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP")||new ActiveXObject("Microsoft.XMLHTTP");
		}catch(e){
			return null;
		}
	}
	if (_XMLHttpRequest) _XMLHttpRequest.onreadystatechange = callback;
	return _XMLHttpRequest;
}

/************/
function makeEC_Cart(){
	var	_HTML	= new String();
	for(var _i in pageItem){
		_HTML	+='<div ID="cart_ID_'+_i+'">';
		for(var _j=0;pageItem[_i].length>_j;_j++){
			var	_myObj	= pageItem[_i][_j];
			var	_myID	= _myObj.ID;
			var	_myName	= (_myObj.NAME)? _myObj.NAME:products[_myID].NAME;
			products[_myID]._NAME = _myName;
			if(products[_myID]){
				var	_obj	= products[_myID];
				_myObj.MEDIA	= (_myObj.MEDIA)? _myObj.MEDIA:'RUD';
				_obj.IMG	= (_myObj.IMG)?		_myObj.IMG:false;
				_obj.ROM.ID	= (_obj.ROM.ID)?	(_myObj.MEDIA.match(/R/g))? _obj.ROM.ID.split('|')[0]:false:false;
				_obj.USB.ID	= (_obj.USB.ID)?	(_myObj.MEDIA.match(/U/g))? _obj.USB.ID.split('|')[0]:false:false;
				_obj.DL.ID	= (_obj.DL.ID)?		(_myObj.MEDIA.match(/D/g))? _obj.DL.ID.split('|')[0]:false:false;

				if(_obj.ROM.ID){
					var _myObj	= _myName+_obj.ROM.MEDIA;
					var	_POSTAGE	= (_obj.ROM.POSTAGE)? _obj.ROM.POSTAGE:490;
					if(POSTAGE[_POSTAGE]){
						POSTAGE[_POSTAGE].push(_myObj);
					}else{
						POSTAGE[_POSTAGE]=[_myObj];
					}

					if(_obj.ROM.SHIPPING_DATE){
						var	_SHIPPING_DATE	= getDateEX(_obj.ROM.SHIPPING_DATE);
						_SHIPPING_DATE	= (nowTime>=_SHIPPING_DATE)? '即日発送':SNdObj(slDobj(getDateEX(_obj.ROM.SHIPPING_DATE)))+'発送';
					}else{
						var	_SHIPPING_DATE	= '即日発送';
					}
					if(SHIPPING_DATE[_SHIPPING_DATE]){
						SHIPPING_DATE[_SHIPPING_DATE].push(_myObj);
					}else{
						SHIPPING_DATE[_SHIPPING_DATE]=[_myObj];
					}

					var	_SHIPPING_METHOD	= (_obj.ROM.ID.match(/SP/))? '宅配便':'メール便';
					if(SHIPPING_METHOD[_SHIPPING_METHOD]){
						SHIPPING_METHOD[_SHIPPING_METHOD].push(_myObj);
					}else{
						SHIPPING_METHOD[_SHIPPING_METHOD]=[_myObj];
					}
				}
				if(_obj.USB.ID){
					var _myObj	= _myName+"USBメモリ版";
					var	_POSTAGE	= (_obj.USB.POSTAGE)? _obj.USB.POSTAGE:490;
					if(POSTAGE[_POSTAGE]){
						POSTAGE[_POSTAGE].push(_myObj);
					}else{
						POSTAGE[_POSTAGE]=[_myObj];
					}
					if(_obj.USB.SHIPPING_DATE){
						var	_SHIPPING_DATE	= getDateEX(_obj.USB.SHIPPING_DATE);
						_SHIPPING_DATE	= (nowTime>=_SHIPPING_DATE)? '即日発送':slDobj(slDobj);
					}else{
						var	_SHIPPING_DATE	= '即日発送';
					}
					
					if(SHIPPING_DATE[_SHIPPING_DATE]){
						SHIPPING_DATE[_SHIPPING_DATE].push(_myObj);
					}else{
						SHIPPING_DATE[_SHIPPING_DATE]=[_myObj];
					}

					var	_SHIPPING_METHOD	= (_obj.USB.ID.match(/SP/))? '宅配便':'メール便';
					if(SHIPPING_METHOD[_SHIPPING_METHOD]){
						SHIPPING_METHOD[_SHIPPING_METHOD].push(_myObj);
					}else{
						SHIPPING_METHOD[_SHIPPING_METHOD]=[_myObj];
					}
				}
			}

			_HTML	+='<div ID="cart_ID_'+_i+'_'+pageItem[_i][_j].ID+'">';
			_HTML	+=jsonlib.setJSON(products[pageItem[_i][_j].ID],HTML_temp);
			_HTML	+='</div>';
		}
		_HTML	+='</div>';

	}
	/*送料処理*/
	var	_POSTAGE	= new Array();
	var _HTML_		= (hash_len(POSTAGE)!=0)? false:'<span></span>';
	for(var _i	in POSTAGE){
		if(hash_len(POSTAGE)>1){
			var	_temp	= new Array();
			for(var _j in POSTAGE[_i]){
				_temp.push(POSTAGE[_i][_j]);
			}
			_POSTAGE.push({"num":_temp.length,"POSTAGE":_i,"item":_temp});
		}else{
			_HTML_	= '<p class="f80">送料：'+_i+'円（<a href="/e-shop/membership/" target="_top">ゴールド会員</a>'+_i*0.5+'円）</p>';
		}
	}
	if(!_HTML_){
		var	_first	= true;
		_HTML_	='<p class="f80">送料：';
		for(var _i=0;_POSTAGE.length>_i;_i++){
			if(_first){
				_HTML_	+= _POSTAGE[_i].POSTAGE+'円（<a href="/e-shop/membership/" target="_top">ゴールド会員</a>'+_POSTAGE[_i].POSTAGE*0.5+'円）';
			}else{
				_HTML_	+= "</br>「"+_POSTAGE[_i].item.join('」「')+'」は'+_POSTAGE[_i].POSTAGE+'円（<a href="/e-shop/membership/" target="_top">ゴールド会員</a>'+_POSTAGE[_i].POSTAGE*0.5+'円）';
			}
			_first	= false;
		}
		_HTML_	+='</p>';
	}

	/*発送日処理*/
	var	_SHIPPING	= new Array();
	var _HTML_S		= (hash_len(SHIPPING_DATE)!=0)? false:'<span></span>';
	for(var _i	in SHIPPING_DATE){
		if(hash_len(SHIPPING_DATE)>1){
			var	_temp	= new Array();
			for(var _j in SHIPPING_DATE[_i]){
				_temp.push(SHIPPING_DATE[_i][_j]);
			}
			_SHIPPING.push({"num":_temp.length,"SHIPPING":_i,"item":_temp});
		}else{
			_HTML_S	= '<p class="f80" style="margin: 0.75em 0pt; background: url(&quot;/cp/img/pageitem/sokujitu_no.gif&quot;) no-repeat scroll left top transparent; padding-left: 25px;">'+_i;
		}
	}
	if(!_HTML_S){
		var	_first	= true;
		_HTML_S	='<p class="f80" style="margin: 0.75em 0pt; background: url(&quot;/cp/img/pageitem/sokujitu_no.gif&quot;) no-repeat scroll left top transparent; padding-left: 25px;">';
		for(var _i=0;_SHIPPING.length>_i;_i++){
			if(_first){
				_HTML_S	+= _SHIPPING[_i].SHIPPING;
			}else{
				_HTML_S	+= "<br />「"+_SHIPPING[_i].item.join('」「')+'」は'+_SHIPPING[_i].SHIPPING;
			}
			_first	= false;
		}
		_HTML_S	+='</p>';
	}

	/*発送方法*/
	var	_METHOD	= new Array();
	var _HTML_M		= (hash_len(SHIPPING_METHOD)!=0)? false:'<span></span>';
	for(var _i	in SHIPPING_METHOD){
		if(hash_len(SHIPPING_METHOD)>1){
			var	_temp	= new Array();
			for(var _j in SHIPPING_METHOD[_i]){
				_temp.push(SHIPPING_METHOD[_i][_j]);
			}
			_METHOD.push({"num":_temp.length,"SHIPPING":_i,"item":_temp});
		}else{
			_HTML_M	= '<p class="f80">発送方法：'+_i;
		}
	}
	if(!_HTML_M){
		var	_first	= true;
		_HTML_M	='<p class="f80">発送方法：';
		for(var _i=0;_METHOD.length>_i;_i++){
			if(_first){
				_HTML_M	+= _METHOD[_i].SHIPPING;
			}else{
				_HTML_M	+= "<br />「"+_METHOD[_i].item.join('」「')+'」は'+_METHOD[_i].SHIPPING;
			}
			_first	= false;
		}
		_HTML_M	+='</p>';
	}

	$('CART_BOX').innerHTML				= _HTML;
	$('CART_Comments_BOX').innerHTML	= '<div style="text-align:left;">'+_HTML_S+_HTML_+_HTML_M+'</div>';
//	alert(hash_len(SHIPPING_DATE));

	function cmp_num(a, b) {
		return b.num - a.num;
	}
}

function CallbackMaster(_text){
	if(_text){
		var	_item	= _text.responseText.replace(/\r/g,'').split('\n');
		for(var _i=0; _item.length>_i; _i++){
			_item[_i]	= _item[_i].split('\t');
			var	_obj	= _item[_i];
			if(_obj[1]){
				var	_price	= _obj[9].toString().replace(/[^0-9]/g,'');
				var	_release= _obj[3];
				var	_myID	= ''+_obj[0];
				getSubID(_myID,'');
				getSubID(_myID,'-a');
				getSubID(_myID,'-b');
				getSubID(_myID,'-c');
				getSubID(_myID,'-A');
				getSubID(_myID,'-B');
				getSubID(_myID,'-C');
				getSubID(_myID,'-O');
				getSubID(_myID,'-L');
				getSubID(_myID,'-K');
				master[_myID]={"PRICE":_obj[9],"RELEASE_DATE":_obj[3]}
			}
		}
	}
	makeEC_Cart();
	function getSubID(_ID,_hash){
		var	_myID	= _ID+_hash;
		if(products[_myID]){
			products[_myID].SUMMARY.PRICE	= _price;
			products[_myID].SUMMARY.RELEASE_DATE	= _release;
			products[_myID].ROM.OFF	= (products[_myID].ROM.ID)?	getOff(products[_myID].ROM.PRICE,_price):false;
			products[_myID].USB.OFF	= (products[_myID].USB.ID)?	getOff(products[_myID].USB.PRICE,_price):false;
			products[_myID].DL.OFF	= (products[_myID].DL.ID)?	getOff(products[_myID].DL.PRICE,_price):false;
			products[_myID].ROM.CHO	= (products[_myID].ROM.ID)?	getOff(products[_myID].ROM.PRICE,_price,true):false;
			products[_myID].USB.CHO	= (products[_myID].USB.ID)?	getOff(products[_myID].USB.PRICE,_price,true):false;
			products[_myID].DL.CHO	= (products[_myID].DL.ID)?	getOff(products[_myID].DL.PRICE,_price,true):false;
			products[_myID].DL.CHO_PRICE	= (products[_myID].DL.ID)?	_price*0.5:false;
			products[_myID].DL.CHO_OFF	= (products[_myID].DL.ID)?	getOff(products[_myID].DL.CHO_PRICE,_price):false;
		}
	}
	function getOff(_Price,_basePrice,_over50){
		var	_off	= false
		if(_Price&&_basePrice){
			_off	= 100-Math.ceil(_Price*100/_basePrice);
		}
		if(_over50){
			if(_off>=50){
				return false;
			}else{
				return true;
			}
		}else{
			return _off;
		}
	}
}
function CallbackEC(_xml){
	if(_xml){
		var	_items	= _xml.responseXML.getElementsByTagName('items');
		var	_item	= _items[0].getElementsByTagName('item');
		for(var _i=0; _item.length>_i; _i++){
			var	_myName	= xmlTag(_item[_i],'id',0,'name');
			var	_myID	= ''+xmlTag(_item[_i],'id');
			var	_rom	= _item[_i].getElementsByTagName('rom')[0];
			var	_usb	= _item[_i].getElementsByTagName('usb')[0];
			var	_dl		= _item[_i].getElementsByTagName('dl')[0];
			var	_lank	= _item[_i].getElementsByTagName('lank')[0];
			
			products[_myID]={
				"NAME":_myName,
				"ID":_myID,
				"IDnum":_myID.toString().replace(/[^0-9]/g,''),
				"SUMMARY":{
					"PRICE":false,
					"HEAD":xmlTag(_item[_i],'itemhead',0),
					"FOOT":xmlTag(_item[_i],'text',0),
					"ATTENTION":xmlTag(_item[_i],'mainattention',0),
					"GROUP":xmlTag(_item[_i],'group',0),
					"SIZE":{
						"WIN":xmlTag(_item[_i],'file',0,'sizeW'),
						"MAC":xmlTag(_item[_i],'file',0,'sizeM'),
						"LNX":xmlTag(_item[_i],'file',0,'sizeL')
					},
					"CHOWARI":xmlTag(_item[_i],'file',0,'choURL')
				},
				"ROM":(xmlTag(_rom,'ID',0))?{
					"ID":xmlTag(_rom,'ID',0),
					"NAME":xmlTag(_rom,'ID',0,'pName'),
					"MEDIA":(xmlTag(_rom,'ID',0,'name'))? xmlTag(_rom,'ID',0,'name'):'CD-ROM版',
					"PRICE":xmlTag(_rom,'ID',0,'price'),
					"PRIORITY":xmlTag(_item[_i],'rom',0,'priority'),
					"SHIPPING_DATE":xmlTag(_rom,'ID',0,'hassoubi'),
					"POSTAGE":xmlTag(_rom,'ID',0,'souryou'),
					"TEXT":xmlTag(_rom,'uri',0),
					"ATTENTION":xmlTag(_rom,'attention',0),
					"ATTENTION_BOTTOM":xmlTag(_rom,'attention_b',0)
				}:{"ID":false},
				"USB":(xmlTag(_usb,'ID',0))?{
					"ID":xmlTag(_usb,'ID',0),
					"NAME":xmlTag(_usb,'ID',0,'pName'),
					"PRICE":xmlTag(_usb,'ID',0,'price'),
					"PRIORITY":xmlTag(_item[_i],'usb',0,'priority'),
					"SHIPPING_DATE":xmlTag(_usb,'ID',0,'hassoubi'),
					"POSTAGE":xmlTag(_usb,'ID',0,'souryou'),
					"TEXT":xmlTag(_usb,'uri',0),
					"ATTENTION":xmlTag(_usb,'attention',0),
					"ATTENTION_BOTTOM":xmlTag(_usb,'attention_b',0)
				}:{"ID":false},
				"DL":(xmlTag(_dl,'ID',0))?{
					"ID":xmlTag(_dl,'ID',0),
					"NAME":xmlTag(_dl,'ID',0,'pName'),
					"PRICE":xmlTag(_dl,'ID',0,'price'),
					"PRIORITY":xmlTag(_item[_i],'dl',0,'priority'),
					"TEXT":xmlTag(_dl,'uri',0),
					"ATTENTION":xmlTag(_dl,'attention',0),
					"ATTENTION_BOTTOM":xmlTag(_dl,'attention_b',0)
				}:{"ID":false},
				"LANK":(xmlTag(_lank,'ID',0))?{
					"ID":xmlTag(_lank,'ID',0),
					"NAME":xmlTag(_lank,'ID',0,'pName'),
					"PRICE":xmlTag(_lank,'ID',0,'price'),
					"TEXT":xmlTag(_lank,'uri',0),
					"ATTENTION":xmlTag(_lank,'attention',0)
				}:{"ID":false}
			}
		}
	}
	postXMLHttpRequest(file.TITLE,'Master',true,'CallbackMaster','GET');
}

postObj = new Object();
function postData(callback,ID,file){
	postXMLHttpRequest(file,ID,true,callback,'GET');
}

