var myQuery={};
var objTextData="";
var ItemLimit=40;
var ItemCat=[];
var dirBreadCrumb="";
var ChildCategory="";
var pages=0;
var dirCols=4;
var contentsWidth=590;
var ItemCategory=0;

function getCpnPage(){
	myQuery=stripQuery();
	if(myQuery['cp']){
			var url='/shopping/cpn/'+myQuery['cp']+'.html';
			try {
				xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xmlReq = new XMLHttpRequest();
			}
		
			xmlReq.onreadystatechange = function() {
				if (xmlReq.readyState == 4) {
					if (xmlReq.status == 200) {
						document.getElementById('contents').innerHTML=xmlReq.responseText;
					} else {
		//失敗
					}
				} else {
		//通信中			
				}
			}
			xmlReq.open('get',url,true);
			xmlReq.send(null);
	}
}
function getCategory(){
	myQuery=stripQuery();
	
	if(myQuery['c']){
		getRcategory(myQuery['c']);
	}else{
		if(parseInt(myQuery['cid'])>0){
			if(!(parseInt(myQuery['st'])>0)){
				var start=0;
			}else{
				var start=parseInt(myQuery['st']);
			}
			getDirText(myQuery['cid'],start);
		}
	}
}
function getChildCategory(id){
	var url='/shopping/misc/childcategory/'+id+'.txt';
	try {
		xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
	} catch(e) {
		xmlReq = new XMLHttpRequest();
	}

	xmlReq.onreadystatechange = function() {
		if (xmlReq.readyState == 4) {
			if (xmlReq.status == 200) {
//成功
				ChildCategory='<table border="0" cellpadding="0" cellspacing="0"><tbody>';
				var text=xmlReq.responseText;
				var lines=text.split('\n');
				
				for(i=0;i<lines.length;i++){
					if(lines[i].length==0){continue;}
					var category=lines[i].split("\t");
					if((i+1)%5==1){ChildCategory+='<tr>';}
					ChildCategory+='<td><span>●</span><a href="/shopping/category.html?cid='+category[0]+'">'+category[1]+'</a></td>';
					if((i+1)%5==0){ChildCategory+='</tr>';}
				}
				ChildCategory+='</tbody></table>';
				document.getElementById('subcategories').innerHTML=ChildCategory;
			} else {
//失敗
			}
			sendRequest(catlink,'','GET','/shopping/misc/category_ranking/'+id+'.html',false,false);
		} else {
//通信中			
		}
	}
	xmlReq.open('get',url,true);
	xmlReq.send(null);
}
function getRcategory(rcid){
	var url='/shopping/misc/rcateg.txt';
	try {
		xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
	} catch(e) {
		xmlReq = new XMLHttpRequest();
	}

	xmlReq.onreadystatechange = function() {
		if (xmlReq.readyState == 4) {
			if (xmlReq.status == 200) {
//成功
				var text=xmlReq.responseText;
				var lines=text.split('\n');
				
				for(i=0;i<lines.length;i++){
					if(lines[i].length==0){continue;}
					var category=lines[i].split("\t");
					if(category[0]==rcid){
						myQuery['cid']=category[1];
						getDirText(myQuery['cid'],0);
						return true;
					}
				}
			} else {
//失敗
			}
		} else {
//通信中			
		}
	}
	xmlReq.open('get',url,true);
	xmlReq.send(null);
}
function getDirText(id,start){
	document.getElementById('contents').innerHTML=document.getElementById('LoadingProgress').innerHTML;

	if(objTextData.length>0){
		striptTextData(start);
		return true;
	}
	
	var url='/shopping/misc/category/'+id+'.txt';

	try {
		xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
	} catch(e) {
		xmlReq = new XMLHttpRequest();
	}

	xmlReq.onreadystatechange = function() {
		if (xmlReq.readyState == 4) {
			if (xmlReq.status == 200) {
//成功
				objTextData=xmlReq.responseText;
				striptTextData(start);
			} else {
//失敗
				document.getElementById('ErrorText').innerHTML='このカテゴリには商品がありませんでした（ページが削除されたか移動された可能性があります）';
				document.getElementById('contents').innerHTML=document.getElementById('ErrorMessage').innerHTML;
			}
		} else {
//通信中			
		}
	}
	xmlReq.open('get',url,true);
	xmlReq.send(null);
}
function striptTextData(start){
	var lines=objTextData.split('\n');
	
	pages=Math.ceil((lines.length-1)/ItemLimit);
	ItemCat=[];
	
	var x=0;
	for(i=0;i<lines.length;i++){
		if(lines[i].length==0){continue;}
		if(i<start){continue;}
		if(i+1>start+ItemLimit){break;}
		var item=lines[i].split('\t');
		ItemCat[x]={mng_number:item[0],item_name:item[1],regular_price:item[2],price:item[3],image_url:item[4],postage_flag:item[5],access:item[5]};
		x++;
	}
	dirList(start);
}
function getDirBreadCrumb(url){
	try {
		xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
	} catch(e) {
		xmlReq = new XMLHttpRequest();
	}

	xmlReq.onreadystatechange = function() {
		if (xmlReq.readyState == 4) {
			if (xmlReq.status == 200) {
//成功
				dirBreadCrumb='<a href="/shopping/">バイク用品トップ</a>';
				var text=xmlReq.responseText;
				var lines=text.split('\n');
				for(i=0;i<lines.length;i++){
					if(lines[i].length==0){continue;}
					var val=lines[i].split('\t');
					dirBreadCrumb+='<span>&gt;</span><a href="/shopping/category.html?cid='+val[0]+'">'+val[1]+'</a>';
					document.getElementById('breadcrumb').innerHTML=dirBreadCrumb;
					getChildCategory(myQuery['cid']);
				}
			} else {
//失敗
			}
		} else {
//通信中			
		}
	}
	xmlReq.open('get',url,true);
	xmlReq.send(null);
}
function dirList(start){
	var objHTML='';

	var SortNavi='';
	
	SortNavi+='<div class="dirSort">';
	SortNavi+='並び替え：<a href="#" onClick="ItemCat=multiSort(ItemCat,\'price\',\'asc\');getDirText('+myQuery['cid']+','+start+');return false;">価格が安い順</a> | <a href="#" onClick="ItemCat=multiSort(ItemCat,\'price\',\'desc\');getDirText('+myQuery['cid']+','+start+');return false;">価格が高い順</a>';
	SortNavi+='</div>';
	
	objHTML+='<div id="breadcrumb"></div>';
	objHTML+='<div id="subcategories"></div>';
	
	var pageNavi='';
	if(pages>1){
		pageNavi='<table border="0" cellpadding="0" cellspacing="0" class="pageNavi"><tbody>';
		pageNavi+='<tr valign="top">';
		if(start>=ItemLimit){
			pageNavi+='<td align="left" nowrap style="width:80px;"><input type="button" onClick="getDirText('+myQuery['cid']+','+parseInt(start-ItemLimit)+');return false;" value="前のページ"></td>';
		}else{
			pageNavi+='<td style="width:80px;">&nbsp;</td>';
		}
		pageNavi+='<td align="center" style="width:400px;">';
		pageNavi+='<table border="0" cellpadding="0" cellspacing="0" class="pageNumbers"><tbody>';
		for(i=0;i<pages;i++){
			if((i+1)%20==1){pageNavi+='<tr>';}
			if(start==i*ItemLimit){
				pageNavi+='<td><div class="currentPage">';
			}else{
				pageNavi+='<td><div>';
			}
			pageNavi+='<a href="category.html?cid='+myQuery['cid']+'&st='+parseInt(i*ItemLimit)+'" onClick="getDirText('+myQuery['cid']+','+parseInt(i*ItemLimit)+');return false;">'+parseInt(i+1)+'</a>';
			pageNavi+='</div></td>\n';
			if((i+1)%20==0){pageNavi+='</tr>';}
		}
		pageNavi+='</tbody></table>';
		pageNavi+='</td>';

		if(start+ItemLimit<pages*ItemLimit){
			pageNavi+='<td align="right" nowrap><input type="button" onClick="getDirText('+myQuery['cid']+','+parseInt(start+ItemLimit)+');return false;" value="次のページ"></td>';
		}else{
			pageNavi+='<td>&nbsp;</td>';
		}

		pageNavi+='</tr></tbody></table>';
		}
	
	objHTML+=pageNavi;
//	objHTML+=SortNavi;
	objHTML+='<table border="0" cellpadding="0" cellspacing="0" class="ItemsList"><tbody>';

	var x=0;
	for(i=0;i<ItemCat.length;i++){
		x++;
		items=ItemCat[i];
		if(x%dirCols==1){
			objHTML+='<tr>';
		}
		objHTML+='<td><table border="0" cellpadding="0" cellspacing="0" class="ItemBlock" style="';
		if(x%dirCols>0){
			objHTML+='margin-right:10px;';
		}
		objHTML+='"><tbody style="font-size:12px;">';
		objHTML+='<tr><td align="center">';
		if(items.image_url){
			objHTML+='<a href="/shopping/i/'+items.mng_number+'.html"><img src="/shopping/thumb/s/'+items.image_url+'" border="0"></a>';
		}else{
			objHTML+='<a href="/shopping/i/'+items.mng_number+'.html"><img src="/img/dot.gif" width="110" height="110" style="border:1px dashed #000000;background:#FFFFFF;" border="0"></a>';
		}
	
		objHTML+='</td></tr>';
		objHTML+='<tr><td><div><a href="/shopping/i/'+items.mng_number+'.html">'+items.item_name+'</a></div></td></tr>';
		if(items.regular_price>0){
			objHTML+='<tr><td align="right">通常価格：'+numberformat(items.regular_price)+'円</td></tr>';
		}else{
			objHTML+='<tr><td align="right">オープン価格</td></tr>';
		}
		objHTML+='<tr><td align="right" style="color:#FF0000;font-weight:bold;">当店価格'+numberformat(items.price)+'円</td></tr>';
		objHTML+='</tbody></table></td>';
		if(x%dirCols==0){
			objHTML+='</tr>';
		}

	}
	objHTML+='</tbody></table>';

	objHTML+=pageNavi;
	
	document.getElementById('contents').innerHTML=objHTML;
	if(dirBreadCrumb.length>0){
		document.getElementById('breadcrumb').innerHTML=dirBreadCrumb;
		document.getElementById('subcategories').innerHTML=ChildCategory;
	}else{
		getDirBreadCrumb('/shopping/misc/breadcrumb/'+myQuery['cid']+'.txt');
	}
}
function loadItem(){
	myQuery=stripQuery();
	if(myQuery){
		if(myQuery['pid']){
			var pid=myQuery['pid'].replace(/\/$/,'');
			sendRequest(getItemCategory,'','GET','/shopping/misc/allitems.txt',false,false);
			if(ItemCategory>0){
				sendRequest(getItemBreadCrumb,'','GET','/shopping/misc/breadcrumb/'+ItemCategory+'.txt',false,false);
			}
			sendRequest(getItemText,'','GET','/shopping/item/'+pid+'.html',true,false);
			sendRequest(relevantItem,'','GET','/shopping/misc/relevantitem/'+pid+'.html',true,false);
			return true;
		}
	}
	location.href='/shopping/';
}
function relevantItem(res){
	if(res.status==200){
		document.getElementById('relevantitem').innerHTML='<table border="0" cellpadding="3" cellspacing="0"><tbody style="font-size:12px;"><tr><td><img src="http://www.racingworld.co.jp/misc/lightbox/images/loading.gif"></td><td>情報を取得中...しばらくお待ちください</td></tr></tbody></table>';
		document.getElementById('relevantitem').innerHTML=res.responseText;
	}else{
		sendRequest(catlink,'','GET','/shopping/misc/category_ranking/'+ItemCategory+'.html',false,false);
	}
}
function topranking(){
	document.getElementById('relevantitem').innerHTML='<table border="0" cellpadding="3" cellspacing="0"><tbody style="font-size:12px;"><tr><td><img src="http://www.racingworld.co.jp/misc/lightbox/images/loading.gif"></td><td>情報を取得中...しばらくお待ちください</td></tr></tbody></table>';
	var url='/shopping/itemrank.html';
	try {
		xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
	} catch(e) {
		xmlReq = new XMLHttpRequest();
	}

	xmlReq.onreadystatechange = function() {
		if (xmlReq.readyState == 4) {
			if (xmlReq.status == 200) {
//成功
				var text=xmlReq.responseText;

				document.getElementById('relevantitem').innerHTML=text;
			} else {
//失敗
				document.getElementById('relevantitem').innerHTML='';
			}
		} else {
//通信中			
		}
	}
	xmlReq.open('get',url,true);
	xmlReq.send(null);
}
function catlink(res){
	document.getElementById('relevantitem').innerHTML='<table border="0" cellpadding="3" cellspacing="0"><tbody style="font-size:12px;"><tr><td><img src="http://www.racingworld.co.jp/misc/lightbox/images/loading.gif"></td><td>情報を取得中...しばらくお待ちください</td></tr></tbody></table>';
	if(res.status==200){
		var text=res.responseText;
		document.getElementById('relevantitem').innerHTML=text;
	}else{
		topranking();
	}
}
function getItemCategory(res){
	var pid=myQuery['pid'].replace(/\/$/,'');
	if(res.status==200){
		var text=res.responseText;
		var lines=text.split('\n');
		for(i=0;i<lines.length;i++){
			var values=lines[i].split("\t");
			if(values[0]==pid){
				ItemCategory=values[4].trim();
				return ItemCategory;
			}
		}
	}
	ItemCategory=0;
}
function getItemBreadCrumb(res){
	document.getElementById('contents').innerHTML+='<div id="breadcrumb"></div>';
	if(res.status==200){
		dirBreadCrumb='<a href="/shopping/">バイク用品トップ</a>';
		var text=res.responseText;
		var lines=text.split('\n');
		for(i=0;i<lines.length;i++){
			if(lines[i].length==0){continue;}
			var val=lines[i].split('\t');
			dirBreadCrumb+='<span>&gt;</span><a href="/shopping/category.html?cid='+val[0]+'">'+val[1]+'</a>';
			document.getElementById('breadcrumb').innerHTML=dirBreadCrumb;
			document.getElementById('breadcrumb').style.display='block';
		}
	}
}
function getItemText(res){
	if(res.status==200){
		var text=res.responseText;
		var pid=myQuery['pid'].replace(/\/$/,'');
		document.getElementById('contents').innerHTML+='<div id="itemData"><table border="0" cellpadding="3" cellspacing="0"><tbody style="font-size:12px;"><tr><td><img src="http://www.racingworld.co.jp/misc/lightbox/images/loading.gif"></td><td>情報を取得中...しばらくお待ちください</td></tr></tbody></table></div>';
	
		text=text.replace("<form method=\"post\" action=\"basket.php\">",'<div id="BasketForm">');
		text=text.replace("</form>",'</div">');
		text=text.replace("QRコードを読んで携帯でSHOPPING",'QR" style="display:none"');
		text=text.replace("<div style=\"font-size:10px;width:88px\">↑携帯でスキャン</div>",'');
		var objHTML='<table border="0" cellpadding="0" cellspacing="0" style="width:590px;"><tr valign="top"><td>';
		objHTML+=text;
		objHTML+='</td></tr></table>';
		
		document.getElementById('itemData').innerHTML=objHTML;
		
		var objBasket=document.getElementById('BasketForm');
		var objNewBlock=document.createElement("div");
		var objForm=document.createElement("form");
		objForm.action='/shopping/basket.php';
		objForm.method='post';
	
		
		objNewBlock.innerHTML=objBasket.innerHTML;
		
		objForm.appendChild(objNewBlock);
		objBasket.innerHTML='';
		objBasket.appendChild(objForm);
	}else{
		document.getElementById('contents').innerHTML='<fieldset><legend>該当商品がありません</legend><div style="margin:10px;">誠に恐れ入りますが、指定されたアドレスに商品が見つかりませんでした。商品が完売や廃盤などのためご注文できない状態またはページが削除された可能性があります。</div></fieldset>';
	}
}
function multiSort(MyArray,key,sortOrder){
		if(sortOrder=="asc"){
			MyArray.sort(function (b1, b2) { return b1[key] > b2[key] ? 1 : -1; });
		}else{
			MyArray.sort(function (b1, b2) { return b1[key] < b2[key] ? 1 : -1; });
		}
		return MyArray;
}
function sleep(time){
	setTimeout(donothing, time);
}
function donothing(){
	
}