
var variationData;
var stockData;


function writeSelect(id, attName, enabled) {
	if (checkVariation(id, attName)) {
		if (enabled) {
			p("<select name=\"" + attName + "\">");
		} else {
			p("<select name=\"" + attName + "\" disabled='true'>");
		}
		var array = item[attName + "s"];
		for (var i=0; i<array.length; i++) {
			var name = array[i]["@name"];
			p("<option value=\"" + name + "\">" + name + "</option>");
		}
		p("</select>");
		return true;
	}
	return false;
}

function checkVariation(id, attName) {
	var variation = item[attName + "s"];
	return (variation != undefined);
}

function checkStock() {
	var variations = item["variation"]
	var ids = new Array();
	if (variations.length == undefined) {
		ids[0] = variations.id;
	} else {
		for (var i=0; i<variations.length; i++) {
			ids[i] = variations[i].id;
		}
	}

	for (var i=0; i<stocks.length; i++) {
		var stock = stocks[i]["@id"];
		if (stock > 0) {
			return true;
		}
	}
	return false;
}

function initForm() {

	var hasStock = checkStock();

	p("<div id=\"shopForm\">");
	p("<form method=\"post\" action=\"" + shopBaseURL + "/shop/basket\">");
	p("<input type=\"hidden\"name=\"mode\" value=\"addItem\" />");
	p("<input type=\"hidden\"name=\"id\" value=\"" + itemId + "\" />");

	p("<table border=\"0\" cellpadding=\"0\" cellspacing=\"6\" align=\"right\">");

	if (checkVariation(itemId, "color")) {
		p("<tr>");
		p("<td>");
		p("<span class=\"variationLabel\">■ カラー</span>");
		p("</td>");
		p("<td>");		
		p("<span class=\"variationSelect\">");
		writeSelect(itemId, "color", hasStock);
		p("</span>");
		p("</td>");
		p("</tr>");
	}

	if (checkVariation(itemId, "size")) {
		p("<tr>");
		p("<td>");
		p("<span class=\"variationLabel\">■ サイズ</span>");
		p("</td>");
		p("<td>");		
		p("<span class=\"variationSelect\">");
		writeSelect(itemId, "size", hasStock);
		p("</span>");
		p("</td>");
		p("</tr>");
	}

	if (checkVariation(itemId, "type")) {
		p("<tr>");
		p("<td>");
		p("<span class=\"variationLabel\">■ タイプ</span>");
		p("</td>");
		p("<td>");		
		p("<span class=\"variationSelect\">");
		writeSelect(itemId, "type", hasStock);
		p("</span>");
		p("</td>");
		p("</tr>");
	}

	p("<tr>");
	p("<td>");
	p("<span class=\"variationLabel\">■ 数量</span>");
	p("</td>");
	p("<td>");
	p("<span class=\"variationSelect\">");
	if (hasStock) {
		p("<select name=\"quantity\">");
	} else {
		p("<select name=\"quantity\" disabled='true'>");
	}
	p("<option value=\"1\">1</option>");
	p("<option value=\"2\">2</option>");
	p("<option value=\"3\">3</option>");
	p("<option value=\"4\">4</option>");
	p("<option value=\"5\">5</option>");
	p("<option value=\"6\">6</option>");
	p("<option value=\"7\">7</option>");
	p("<option value=\"8\">8</option>");
	p("<option value=\"9\">9</option>");
	p("<option value=\"10\">10</option>");
	p("</select>");
	p("</span>");
	p("</td>");
	p("</tr>");

	p("<tr>");
	p("<td></td>");
	p("<td>");
	p("<span class=\"submitButton\">");
	if (hasStock) {
		p("<input type=\"submit\" value=\"カゴに入れる\"/>");
	} else {
		p("<input type=\"submit\" value=\"在庫切れ\" disabled='true' />");
	}
	p("</span>");
	p("</td>");
	p("</tr>");

	p("</table>");

	p("</form>");
	p("</div>");
}

function printStockTable() {
	
	var variations = item.variation;
	var ids = new Array();
	for (var i=0; i<variations.length; i++) {
		ids[i] = variations[i]["@id"];
	}

	width = 220;
	if (item.colors != null && item.colors.length > 3) {
		width = 420;
	}

	p("■ 在庫状況<br />");
	p("<table border=\"0\" cellpadding=\"0\" cellspacing=\"1\" width=\"" + width + "\" bgcolor=\"#000000\" summary=\"在庫状況\">");
	
	var colors = item.colors;
	cellwidth = 25;

	if (colors != undefined) {
		
		cellwidth = 100 /(colors.length + 1);

		p("<tr>");

		p("<td width=\"" + cellwidth + "%\" align=\"center\" bgcolor=\"#cccccc\">");
		p("<img src=\"/common/images/spacer.gif\" width=\"40\" height=\"2\" alt=\"\" /><br />");
		p("</td>");
		for (var i = 0; i < colors.length; i++) {
			var name = colors[i]["@name"];
			p("<td width=\"" + cellwidth + "%\" align=\"center\" bgcolor=\"#cccccc\">");
			p("<img src=\"/ja/shop/common/images/color/" + name + ".gif\" width=\"20\" height=\"10\" vspace=\"3\" alt=\"color\" /><br />");
			p(name);
			p("<br />");
			p("</td>");
		}
		p("</tr>");
	}

	var sizes = item.sizes;

	for (var i=0; i<sizes.length; i++) {
		p("<tr>");
		p("<td width=\"" + cellwidth + "%\" align=\"center\" bgcolor=\"#cccccc\">");
		p(sizes[i]["@name"]);
		p("</td>");

		if (colors != undefined) {
			for (var j = 0; j < colors.length; j++) {
				p("<td width=\"" + cellwidth + "%\" align=\"center\" bgcolor=\"#cccccc\">");
				if (getStock(colors[j]["@name"], sizes[i]["@name"], null) > 0) {
					p("○");
				} else {
					p("×");
				}
				p("</td>");
			}
			p("</tr>");
		} else {
			p("<td width=\"" + cellwidth + "%\" align=\"center\" bgcolor=\"#cccccc\">");
			if (getStock(null, sizes[i]["@name"], null) > 0) {
				p("○");
			} else {
				p("×");
			}
			p("</td>");
		}
	}

	p("</table>");
}

function getStock(color, size, type) {
	var variations = item.variation;
	var id = null;
	for (var i=0; i<variations.length; i++) {
		if (variations[i]["@color"] == color
			&& variations[i]["@size"] == size
			&& variations[i]["@variationName"] == type) {
			id = variations[i]["@id"];
		}
	}
	if (id == null) {
		return 0;
	}
	return getStockById(id);
}

function getStockById(id) {
	for (var i=0; i<stocks.length; i++) {
		if (stocks[i]["@id"] == id) {
			return stocks[i]["@value"];
		}
	}
	return 0;
}

function printSingleStockTable() {

	p("■ 在庫状況<br />");
	p("<table border=\"0\" cellpadding=\"0\" cellspacing=\"1\" width=\"220\" bgcolor=\"#000000\" summary=\"在庫状況\">");

	var parent = item["colors"];
	var type = "color";
	if (parent == undefined) {
		parent = item["sizes"];
		type = "size";
	}
	if (parent == undefined) {
		parent = item["types"];
		type = "type";
	}

	for (var i = 0; i < parent.length; i++) {
		var name = parent[i]["@name"];
		p("<tr>");
		p("<td width=\"25%\" align=\"center\" bgcolor=\"#cccccc\">");
		p(name);
		p("</td>");
		p("<td width=\"25%\" align=\"center\" bgcolor=\"#cccccc\">");

		var stock = 0;
		if (type == "color") {
			stock = getStock(name, null, null);
		} else if (type == "size") {
			stock = getStock(null, name, null);
		} else if (type == "type") {
			stock = getStock(null, null, name);
		}

		if (stock > 0) {
			p("○");
		} else {
			p("×");
		}
		p("</td>");
		p("</tr>");
	}
	p("</table>");
}


function p(string) {
	document.write(string);
}
