var
	xhr=false,
	cache=new Array(),
	ccache=new Array(),
	ctext="||",
	list=false,
	filter="",
	flg=false;
function search(str){
	if(!flg){
		if(xhr.checkComplete()){
			flg=true;
			list=xhr.data();
		}
		else return;
	}
	if(document.getElementById("list")) document.getElementById("target").removeChild(document.getElementById("list"));
	if(!str || str==":" || str=="（" || str=="）" || str=="・") return;
	var result=new Array(),hit=0,ul=document.createElement("ul");
	ul.id="list";
	document.getElementById("target").appendChild(ul);
//	if(cache[str]){
//		result=cache[str];
//	}else{
		for(var i in list){
			var data=list[i].split(":");
			if(!data[1]) continue;
			if(data[2].indexOf(filter)==-1) continue;
//			var regexp=new RegExp(str.replace(/(\W)/,'\\$1'));
//			if(regexp.exec(data[1])){

			if(data[1].indexOf(str)!=-1){
				result[result.length]=list[i];
				hit++;
			}
		}
		cache[str]=result;
//	}
	if(document.getElementById("status")){document.getElementById("target").removeChild(document.getElementById("status"));}
	for(var i=0;i<result.length;i++){
		var
			data=result[i].split(":"),
			a=document.createElement("a"),
			s=false,
			span=document.createElement("span"),
			li=document.createElement("li");
		data[1]=data[1].replace(/\?/g,"－");
		a.href='javascript:printCard("'+data[2]+'","'+data[0]+'");';
		     if(data[2].indexOf("bmon")!=-1) s="　[通常モン]　 ";
		else if(data[2].indexOf("emon")!=-1) s="　[効果モン]　 ";
		else if(data[2].indexOf("fmon")!=-1) s="　[融合モン]　 ";
		else if(data[2].indexOf("nmgc")!=-1) s="　[通常魔法]　 ";
		else if(data[2].indexOf("smgc")!=-1) s="　[速攻魔法]　 ";
		else if(data[2].indexOf("emgc")!=-1) s="　[永続魔法]　 ";
		else if(data[2].indexOf("ntrp")!=-1) s="　 [通常罠] 　 ";
		else if(data[2].indexOf("etrp")!=-1) s="　 [永続罠] 　 ";
		else if(data[2].indexOf("ctrp")!=-1) s="[カウンター罠] ";
		span.className="type";
		span.appendChild(document.createTextNode(s));
		li.appendChild(span);
		a.appendChild(document.createTextNode(data[1]));
		li.appendChild(a);
		document.getElementById("list").appendChild(li);
	}
}
function insertTextbox(){
	var input=document.createElement("input");
	input.type="text";
	input.id="textbox";
	input.size="100";
	input.onkeyup=function(){
		search(this.value);
	}
	document.getElementById("form").appendChild(input);
}
function printCard(type,name){
	if(ccache[name]){pCard(ccache[name][0],ccache[name][1],true);}
	else var Pxhr=new XHR("cardv2.cgi?"+type+"+"+name,null,type);
}

function pCard(card,_d,cache){
	if(document.getElementById("card")){document.getElementById("cardtarget").removeChild(document.getElementById("card"));}
	var
		d=_d.split("<>"),
		dl=document.createElement("dl");
	dl.id="card";
	if(card.indexOf("mon")!=-1){
		var
			star="",
			dt=document.createElement("dt"),
			dd=document.createElement("dd");
		for(var i=0;i<d[2];i++){
			star+="☆";
		}
		dt.appendChild(document.createTextNode(d[1]+"　　　　"+star+"(レベル"+d[2]+")"));
		dd.appendChild(document.createTextNode(d[3]+"属性 "+d[4]+" ATK:"+d[5]+"/DEF:"+d[6]));
		dl.appendChild(dt);
		dl.appendChild(dd);
		if(d[7]){
			var dd2=document.createElement("dd");
			dd2.className="kouka";
			dd2.appendChild(document.createTextNode(d[7]));
			dl.appendChild(dd2);
		}
	}else{
		var
			dt=document.createElement("dt"),
			dd=document.createElement("dd"),
			dd2=document.createElement("dd");
			dd2.className="kouka";
		dt.appendChild(document.createTextNode(d[1]));
		dd.appendChild(document.createTextNode(d[2]));
		dd2.appendChild(document.createTextNode(d[3]));
		dl.appendChild(dt);
		dl.appendChild(dd);
		dl.appendChild(dd2);
	}
	document.getElementById("cardtarget").appendChild(dl);
	if(!ccache[d[0]] || (ccache[d[0]] && ctext.indexOf(d[0])==-1)){
		ccache[d[0]]=new Array(card,_d);
		var
			li=document.createElement("li"),
			a=document.createElement("a"),
			span=document.createElement("span");
		a.href='javascript:printCard("'+card+'","'+d[0]+'");';
		a.appendChild(document.createTextNode(d[1]));
		span.appendChild(document.createTextNode("×"));
		span.onmouseover=function(){ span.style.textDecoration="line-through"; }
		span.onmouseout=function(){ span.style.textDecoration="none"; }
		span.onclick=function(){
			li.parentNode.removeChild(li);
			var tmp=ctext.split(d[0]);
			ctext=tmp[1];
			ctext="||"+ctext;
		}
		li.appendChild(a);
		li.appendChild(span);
		document.getElementById("st").appendChild(li);
		ctext+=d[0];
	}
}

window.onload=function(){
	CSSS.Form();
	xhr=new XHR("cardlist.txt",true);
}