var ACTIVE_COLOR     = "#A9A9A9";
var NON_ACTIVE_COLOR = "#EFEFFF";
var Mainmenu, Offensemenu1, Offensemenu2, Offensemenu3, Defensemenu, Mainactivemenu, Subactivemenu;
var data;
var xsltCache = new pCache();

var submenudata = new Array('Kakutou', 'Tanken', 'Katateken', 'Ryoteken', 'Katateono', 'Ryoteono', 'Ryotekama', 'Ryoteyari', 'Katatekatana', 
							'Ryotekatana', 'Katatekon', 'Ryotekon', 'Yumi', 'Syageki', 'Toteki', 'Kangakki', 'Gengakki', 'Yadan', 'Turigu', 'Esa', 'Etc', 
							'Sub', 'Head', 'Neck', 'Ear', 'Body', 'Hands', 'Ring', 'Back', 'Waist', 'Legs', 'Feet');


function init() {
	var i;

	var menu = new Array('武器', '防具');

	var weapon1 = new Array('格闘', '短剣', '片手剣', '両手剣', '片手斧', '両手斧', 
								'両手鎌', '両手槍', '片手刀', '両手刀', '片手棍');

	var weapon1flg = new Array('1', '1', '1', '', '1', '', 
								'', '1', '', '', '1');

	var weapon2 = new Array('両手棍', '弓術', '射撃', '投擲', '管楽器', '弦楽器', 
								'矢・弾', '釣り具', '獣の餌', 'その他', '');

	var weapon2flg = new Array('1', '', '', '1', '', '', 
								'', '', '', '', '');

	var deffense = new Array('盾', '頭', '首', '耳', '胴', '両手', 
								'指', '背', '腰', '両脚', '両足');

	var defflg = new Array('1', '1', '1', '1', '', '1', 
								'1', '1', '1', '1', '1');

	Mainmenu = new Array();
	for(i=0; i < menu.length; i++) {
		Mainmenu[i] = menu[i];
	}

	Offensemenu1 = new Array();
	for(i=0; i < weapon1.length; i++) {
		Offensemenu1[i] = new Array();
		Offensemenu1[i][0] = weapon1[i];
		Offensemenu1[i][1] = weapon1flg[i];
		Offensemenu1[i]["result"] = null;
	}

	Offensemenu2 = new Array();
	for(i=0; i < weapon2.length; i++) {
		Offensemenu2[i] = new Array();
		Offensemenu2[i][0] = weapon2[i];
		Offensemenu2[i][1] = weapon2flg[i];
		Offensemenu2[i]["result"] = null;
	}

	Defensemenu = new Array();
	for(i=0; i < deffense.length; i++) {
		Defensemenu[i] = new Array();
		Defensemenu[i][0] = deffense[i];
		Defensemenu[i][1] = defflg[i];
		Defensemenu[i]["result"] = null;
	}

	Mainactivemenu = new Array();
	Mainactivemenu["now"]  = 0;

	Subactivemenu = new Array();
	Subactivemenu["Offense"]  = 0;
	Subactivemenu["Defense"] = 0;

}
function output() {
	var strMenu = '', strContents = '';
	var idx;
	var objDoc;
	var result = document.getElementById('result');
	strMenu = '<table celpadding="0" cellspacing="0"><tr>';
	for (i = 0; i < Mainmenu.length; i++) {
		if (Mainactivemenu["now"] == i) {
			color = ACTIVE_COLOR;
			position = '1px';
		} else {
			color = NON_ACTIVE_COLOR;
			position = '0px';
		}
		searchword = Mainmenu[i];
		strMenu = strMenu + '<td id="menu' + i + '" onClick="clickmenu(' + i + ')" class="list" style="top: ' + position + '; background: ' + color + '; cursor: pointer;" nowrap="nowrap" onmouseover="document.getElementById(\'menu' + i + '\').style.background=\'#CC9966\';" onmouseout="document.getElementById(\'menu' + i + '\').style.background=\'' + color + '\';">' + searchword + '</td>';
	}
	document.getElementById("Mainmenu").innerHTML = strMenu + '</tr></table>';

	if (Mainactivemenu["now"] == 0) {
		strMenu = '<table celpadding="0" cellspacing="0"><tr>';
		for (i = 0; i < Offensemenu1.length; i++) {
			if (Subactivemenu["Offense"] == i) {
				idx = i;
				objDoc = Offensemenu1[i]["result"];
				color = ACTIVE_COLOR;
				position = '1px';
				document.getElementById("Offense1").style.display = 'block';
				document.getElementById("Offense2").style.display = 'block';
				document.getElementById("Offense3").style.display = 'none';
				document.getElementById("Defense").style.display = 'none';

				if (Offensemenu1[i]["result"] != null) {
					strContents = Offensemenu1[i]["result"];
				}

			} else {
				color = NON_ACTIVE_COLOR;
				position = '0px';
			}
			searchword = Offensemenu1[i][0];
			if (Offensemenu1[i][1] == "1") {
				strMenu = strMenu + '<td id="ofc1menu' + i + '" onClick="Offenseclick(' + i + ')" class="list" style="top: ' + position + '; background: ' + color + ';" nowrap="nowrap" onmouseover="document.getElementById(\'ofc1menu' + i + '\').style.background=\'red\';" onmouseout="document.getElementById(\'ofc1menu' + i + '\').style.background=\'' + color + '\';">' + searchword + '</td>';
			} else {
				strMenu = strMenu + '<td id="ofc1menu' + i + '" onClick="Offenseclick(' + i + ')" class="list" style="top: ' + position + '; background: ' + color + '; cursor: pointer;" nowrap="nowrap" onmouseover="document.getElementById(\'ofc1menu' + i + '\').style.background=\'#CC9966\';" onmouseout="document.getElementById(\'ofc1menu' + i + '\').style.background=\'' + color + '\';">' + searchword + '</td>';
			}
		}
		document.getElementById("Offense1").innerHTML = strMenu + '</tr></table>';

		strMenu = '<table celpadding="0" cellspacing="0"><tr>';
		for (i = 0; i < Offensemenu2.length; i++) {
			if (Subactivemenu["Offense"] == (i + Offensemenu1.length)) {
				idx = i + Offensemenu1.length;
				objDoc = Offensemenu2[i]["result"];
				color = ACTIVE_COLOR;
				position = '1px';
				document.getElementById("Offense1").style.display = 'none';
				document.getElementById("Offense2").style.display = 'block';
				document.getElementById("Offense3").style.display = 'block';
				document.getElementById("Defense").style.display = 'none';

				if (Offensemenu2[i]["result"] != null) {
					strContents = Offensemenu2[i]["result"];
				}

			} else {
				color = NON_ACTIVE_COLOR;
				position = '0px';
			}
			searchword = Offensemenu2[i][0];
			if (searchword!=null && searchword!='') {
				if (Offensemenu2[i][1] == "1") {
					strMenu = strMenu + '<td id="ofc2menu' + i + '" onClick="Offenseclick(' + (i + Offensemenu1.length) + ')" class="list" style="top: ' + position + '; background: ' + color + ';" nowrap="nowrap" onmouseover="document.getElementById(\'ofc2menu' + i + '\').style.background=\'red\';" onmouseout="document.getElementById(\'ofc2menu' + i + '\').style.background=\'' + color + '\';">' + searchword + '</td>';
				} else {
					strMenu = strMenu + '<td id="ofc2menu' + i + '" onClick="Offenseclick(' + (i + Offensemenu1.length) + ')" class="list" style="top: ' + position + '; background: ' + color + '; cursor: pointer;" nowrap="nowrap" onmouseover="document.getElementById(\'ofc2menu' + i + '\').style.background=\'#CC9966\';" onmouseout="document.getElementById(\'ofc2menu' + i + '\').style.background=\'' + color + '\';">' + searchword + '</td>';
				}
			} else {
				strMenu = strMenu + '<td class="list" style="top: ' + position + '; background: ' + color + ';" nowrap="nowrap">&nbsp;</td>';
			}
		}
		document.getElementById("Offense2").innerHTML = strMenu + '</tr></table>';

		strMenu = '<table celpadding="0" cellspacing="0"><tr>';
		for (i = 0; i < Offensemenu1.length; i++) {
			color = NON_ACTIVE_COLOR;
			position = '0px';
			searchword = Offensemenu1[i][0];
			if (Offensemenu1[i][1] == "1") {
				strMenu = strMenu + '<td id="ofc3menu' + i + '" onClick="Offenseclick(' + i + ')" class="list" style="top: ' + position + '; background: ' + color + ';" nowrap="nowrap" onmouseover="document.getElementById(\'ofc3menu' + i + '\').style.background=\'red\';" onmouseout="document.getElementById(\'ofc3menu' + i + '\').style.background=\'' + color + '\';">' + searchword + '</td>';
			} else {
				strMenu = strMenu + '<td id="ofc3menu' + i + '" onClick="Offenseclick(' + i + ')" class="list" style="top: ' + position + '; background: ' + color + '; cursor: pointer;" nowrap="nowrap" onmouseover="document.getElementById(\'ofc3menu' + i + '\').style.background=\'#CC9966\';" onmouseout="document.getElementById(\'ofc3menu' + i + '\').style.background=\'' + color + '\';">' + searchword + '</td>';
			}
		}
		document.getElementById("Offense3").innerHTML = strMenu + '</tr></table>';
	} else {
		strMenu = '<table celpadding="0" cellspacing="0"><tr>';
		for (i = 0; i < Defensemenu.length; i++) {
			if (Subactivemenu["Defense"] == i) {
				idx = i + Offensemenu1.length + Offensemenu2.length - 1;
				objDoc = Defensemenu[i]["result"];
				color = ACTIVE_COLOR;
				position = '1px';

				if (Defensemenu[i]["result"] != null) {
					strContents = Defensemenu[i]["result"];
				}

			} else {
				color = NON_ACTIVE_COLOR;
				position = '0px';
			}
			searchword = Defensemenu[i][0];
			if (Defensemenu[i][1] == "1") {
				strMenu = strMenu + '<td id="dfcmenu' + i + '" onClick="Defenseclick(' + i + ')" class="list" style="top: ' + position + '; background: ' + color + '; nowrap="nowrap" onmouseover="document.getElementById(\'dfcmenu' + i + '\').style.background=\'red\';" onmouseout="document.getElementById(\'dfcmenu' + i + '\').style.background=\'' + color + '\';">' + searchword + '</td>';
			} else {
				strMenu = strMenu + '<td id="dfcmenu' + i + '" onClick="Defenseclick(' + i + ')" class="list" style="top: ' + position + '; background: ' + color + '; cursor: pointer;" nowrap="nowrap" onmouseover="document.getElementById(\'dfcmenu' + i + '\').style.background=\'#CC9966\';" onmouseout="document.getElementById(\'dfcmenu' + i + '\').style.background=\'' + color + '\';">' + searchword + '</td>';
			}
		}
	}
	document.getElementById("Defense").innerHTML = strMenu + '</tr></table>';

	var xml = new pXslt();
	var a = xsltCache.getCached(idx);
	xml.asynchronousTransform(objDoc, "result", a);

	if (Mainactivemenu["now"] == 0) {
	} else if (Mainactivemenu["now"] == 1) {
			document.getElementById("Offense1").style.display = 'none';
			document.getElementById("Offense2").style.display = 'none';
			document.getElementById("Offense3").style.display = 'none';
			document.getElementById("Defense").style.display = 'block';
	}
}
function clickmenu(id)
{
	Mainactivemenu["now"] = id;
	if (Mainactivemenu["now"] == 0) {
		data = submenudata[Subactivemenu["Offense"]];
	} else {
		data = submenudata[Subactivemenu["Defense"] + Offensemenu1.length + Offensemenu2.length - 1];
	}
	document.getElementById('progress').style.display = 'none';
	output(0);
}

function Offenseclick(id)
{
	document.getElementById('progress').style.display = 'none';
	Subactivemenu["Offense"] = id;
	data = submenudata[id];
	output(0);
}

function Defenseclick(id)
{
	document.getElementById('progress').style.display = 'none';
	Subactivemenu["Defense"] = id;
	data = submenudata[id + Offensemenu1.length + Offensemenu2.length - 1];
	output(0);
}

function disp(){
	var xmlhttp = new pXmlHttp();
	var filename = data;
	var result = document.getElementById('result');
	var progress = document.getElementById('progress');
	var body = document.getElementById('body');
	try {
		progress.innerHTML = '<img src="../img/thinking.gif" />';
		progress.style.display = 'block';
		body.style.cursor = 'wait';
		xmlhttp.getXml('./data/' + filename + '.xml', Transform);
	} catch (e) {
		result.innerHTML = e;
		progress.style.display = 'none';
	}
}

function Transform(objDoc) {
	var strPub = document.getElementById('pub').value;
	var strJob = document.getElementById('job').value;
	var strRow = document.getElementById('row').value;
	var strHigh = document.getElementById('high').value;
	var cnt = 1;
	var idx = getidx();
	var result = document.getElementById('result');
	var progress = document.getElementById('progress');
	var body = document.getElementById('body');

	if (objDoc) {
		flg=false;
		strFlt="equip";
		if(strPub!=""){
			strFlt+="[(sex/@* = '" + strPub + "')";
			flg=true;
		}
		if(strJob!=""){
			if(flg){
				strFlt+=" and ";
			}else{
				strFlt+="[";
				flg=true;
			}
			strFlt+="(jobs/@* ='" + strJob + "')";
		}
		if(strRow!=""){
			if(flg){
				strFlt+=" and ";
			}else{
				strFlt+="[";
				flg=true;
			}
			strFlt+="(level >= " + strRow + " or hlevel >= " + strRow + " or level = '-')";
		}
		if(strHigh!=""){
			if(flg){
				strFlt+=" and ";
			}else{
				strFlt+="[";
				flg=true;
			}
			strFlt+="(level &lt;= " + strHigh + "or hlevel &lt;= " + strHigh + " or level = '-')";
		}
		if(flg){strFlt+="]";}

		var a = '<?xml version="1.0" encoding="utf-8" ?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="html" encoding="utf-8" /><xsl:template match="/"><TABLE BORDER="0" CELLSPACING="1" CELLPADDING="5px" CLASS="db_table"><TR CLASS="db3"><TD WIDTH="180" ROWSPAN="2">名称</TD><TD WIDTH="30" ROWSPAN="2">Lv</TD><TD>性能</TD></TR><TR CLASS="db3"><TD>入手場所</TD></TR><xsl:apply-templates select="equips" /></TABLE></xsl:template>';
		a += '<xsl:template match="equips"><xsl:for-each select="' + strFlt + '"><TR CLASS="db1"><TD CLASS="db0" ROWSPAN="2"><xsl:for-each select="Name/name"><xsl:choose><xsl:when test="@rareex=\'ex\'"><SPAN CLASS="ex">●</SPAN></xsl:when><xsl:when test="@rareex=\'rare\'"><SPAN CLASS="rare">●</SPAN></xsl:when><xsl:when test="@rareex=\'rareex\'"><SPAN CLASS="rare">●</SPAN><SPAN CLASS="ex">●</SPAN></xsl:when></xsl:choose><xsl:value-of select="@jname" /><BR />';
		a += '<xsl:value-of select="@ename" /><xsl:if test="position()!=last()"><BR /><BR /></xsl:if></xsl:for-each></TD><TD ROWSPAN="2"><xsl:value-of select="level" /></TD><xsl:variable name="sex"><xsl:value-of select="sex" /></xsl:variable><xsl:variable name="level"><xsl:value-of select="level" /></xsl:variable><xsl:variable name="hlevel"><xsl:value-of select="hlevel" /></xsl:variable><xsl:variable name="jobs"><xsl:value-of select="jobs" /></xsl:variable>';
		a += '<xsl:variable name="hjobs"><xsl:value-of select="hjobs" /></xsl:variable><TD CLASS="db1_2"><xsl:for-each select="Spec/spec"><xsl:value-of select="$sex" /><xsl:for-each select="@*"><xsl:value-of select="." /><BR /></xsl:for-each><xsl:choose><xsl:when test="$level=\'-\'"></xsl:when><xsl:when test="position()=1 or $hlevel=\'\'">Lv<xsl:value-of select="$level" />～ </xsl:when><xsl:otherwise>Lv<xsl:value-of select="$hlevel" />～ </xsl:otherwise></xsl:choose>';
		a += '<xsl:choose><xsl:when test="position()=1 or $hjobs=\'\'"><xsl:value-of select="$jobs" /></xsl:when><xsl:otherwise><xsl:value-of select="$hjobs" /></xsl:otherwise></xsl:choose><xsl:if test="position()!=last()"><BR /><IMG SRC="../img/line01.gif" /><BR /></xsl:if></xsl:for-each><xsl:if test="enhance!=\'\'"><BR /><xsl:value-of select="enhance" /></xsl:if></TD></TR><TR CLASS="db5_2"><TD><xsl:for-each select="Get/get"><xsl:for-each select="memo">';
		a += '<xsl:choose><xsl:when test="@flg=\'ex\'"><SPAN CLASS="ex">●</SPAN></xsl:when><xsl:when test="@flg=\'rare\'"><SPAN CLASS="rare">●</SPAN></xsl:when><xsl:when test="@flg=\'rareex\'"><SPAN CLASS="rare">●</SPAN><SPAN CLASS="ex">●</SPAN></xsl:when></xsl:choose><xsl:choose><xsl:when test="@uri!=\'\' and @title!=\'\'"><xsl:element name="a"><xsl:attribute name="href"><xsl:value-of select="@uri" /></xsl:attribute><xsl:attribute name="target">_blank</xsl:attribute>';
		a += '<xsl:attribute name="title"><xsl:value-of select="@title" /></xsl:attribute><xsl:value-of select="@memo" /></xsl:element></xsl:when><xsl:when test="@uri=\'\' and @title!=\'\'"><xsl:element name="acronym"><xsl:attribute name="title"><xsl:value-of select="@title" /></xsl:attribute><xsl:value-of select="@memo" /></xsl:element></xsl:when><xsl:otherwise><xsl:value-of select="@memo" /></xsl:otherwise></xsl:choose><xsl:if test="@flg=\'br\'"><BR />';
		a += '</xsl:if></xsl:for-each><xsl:if test="position()!=last()"><BR /><IMG SRC="../img/line01.gif" /><BR /></xsl:if></xsl:for-each></TD></TR></xsl:for-each></xsl:template></xsl:stylesheet>';

		var xml = new pXslt();
		xml.asynchronousTransform(objDoc, "result", a);

		xsltCache.cache(idx, a);
		progress.style.display = 'none';
		body.style.cursor = 'default';
		if (Mainactivemenu["now"] == 0) {
			if (idx < Offensemenu1.length) {
				Offensemenu1[idx]["result"] = objDoc;
			} else {
				Offensemenu2[(idx - Offensemenu1.length)]["result"] = objDoc;
			}
		} else {
			Defensemenu[(idx - Offensemenu1.length  - Offensemenu2.length + 1)]["result"] = objDoc;
		}

	} else {
		progress.innerHTML = 'Sorry, Now Printing...';
		body.style.cursor = 'default';
	}
}

function  getidx(){
	if (Mainactivemenu["now"] == 0) {
		return Subactivemenu["Offense"];
	} else {
		return Subactivemenu["Defense"] + Offensemenu1.length + Offensemenu2.length - 1;
	}
}

