var selectedObj;

function addBanner(number, name, alt, url, visible) {
	if (window.opener && !window.opener.closed) {
		window.opener.addBannerInfo(number, name, alt, url, visible);
	} else {
		alert("親ウインドウがありません。");
	}
}

function addBannerInfo(number, name, alt, url, visible) {
	var tbody = $("element");
	if (!tbody) return;
	var tr = $E("tr");
	if (visible) {
		tr.className = "bg_highlight";
	}
	var td;
	// 画像
	td = $E("td");
	td.className = "wp_200 ta_c";
	var img = $E("img");
	var filename = number + ".jpg";
	var time = new Date().getTime();
	var src = "http://" + location.hostname + "/image/get/D/banner/F/" + filename + "/R/180/T/" + time;
	img.src = src;
	img.alt = alt;
	td.appendChild(img);
	tr.appendChild(td);
	// バナー名・URL
	td = $E("td");
	td.className = "wp_350";
	td.appendChild($T(name));
	td.appendChild($E("br"));
	td.appendChild($T(url));
	tr.appendChild(td);
	// 操作
	td = $E("td");
	td.className = "ta_c";
	var input = $E("input");
	input.type = "button";
	input.value = "削除";
	input.onclick = function() {
		deleteRow(this);
	}
	td.appendChild(input);
	tr.appendChild(td);
	td = $E("td");
	td.className = "ta_c";
	input = $E("input");
	input.type = "button";
	input.value = "↓";
	input.onclick = function() {
		shiftDownRow(this);
	}
	td.appendChild(input);
	input = $E("input");
	input.type = "button";
	input.value = "↑";
	input.onclick = function() {
		shiftUpRow(this, 'header');
	}
	td.appendChild(input);
	input = $E("input");
	input.type = "hidden";
	input.name = "numbers[]";
	input.value = number;
	td.appendChild(input);
	tr.appendChild(td);
	//
	tbody.appendChild(tr);
}

function addBlock(position, number, name, visible) {
	if (window.opener && !window.opener.closed) {
		window.opener.addBlockInfo(position, number, name, visible);
	} else {
		alert("親ウインドウがありません。");
	}
}

function addBlockInfo(position, number, name, visible) {
	var tbody = $("layout" + position);
	if (!tbody) return;
	var tr = $E("tr");
	if (visible) {
		tr.className = "bg_highlight";
	}
	var td;
	// バナー名・URL
	td = $E("td");
	td.width = 180;
	td.appendChild($T(name));
	tr.appendChild(td);
	// 操作
	td = $E("td");
	td.width = 110;
	var input = $E("input");
	input.type = "button";
	input.value = "↓";
	input.onclick = function() {
		shiftDownRow(this);
	}
	td.appendChild(input);
	input = $E("input");
	input.type = "button";
	input.value = "↑";
	input.onclick = function() {
		shiftUpRow(this);
	}
	td.appendChild(input);
	input = $E("input");
	input.type = "button";
	input.value = "X";
	input.onclick = function() {
		deleteRow(this);
	}
	td.appendChild(input);
	input = $E("input");
	input.type = "hidden";
	input.name = "params[" + position + "][]";
	input.value = "0," + number;
	td.appendChild(input);
	tr.appendChild(td);
	//
	tbody.appendChild(tr);
}

function addProduct(number, name, brand) {
	if (window.opener && !window.opener.closed) {
		window.opener.addProductInfo(number, name, brand);
	} else {
		alert("親ウインドウがありません。");
	}
}

function addProductInfo(number, name, brand) {
	var tbody = $("element");
	if (!tbody) return;
	var tr = $E("tr");
	var td;
	// No
	td = $E("td");
	td.className = "wp_50 ta_c";
	td.appendChild($T(number));
	input = $E("input");
	input.type = "hidden";
	input.name = "product[]";
	input.value = number;
	td.appendChild(input);
	tr.appendChild(td);
	// 画像
	td = $E("td");
	td.className = "wp_100 ta_c";
	var img = $E("img");
	var filename = number + "_0.jpg";
	var time = new Date().getTime();
	var src = "http://" + location.hostname + "/image/get/D/product/F/" + filename + "/R/90/T/" + time;
	img.src = src;
	img.alt = name;
	td.appendChild(img);
	tr.appendChild(td);
	// ブランド
	td = $E("td");
	td.className = "wp_200";
	td.appendChild($T(brand));
	tr.appendChild(td);
	// 商品名
	td = $E("td");
	td.className = "wp_200";
	td.appendChild($T(name));
	tr.appendChild(td);
	// 操作
	td = $E("td");
	td.className = "ta_c";
	var input = $E("input");
	input.type = "button";
	input.value = "削除";
	input.onclick = function() {
		deleteRow(this);
	}
	td.appendChild(input);
	tr.appendChild(td);
	td = $E("td");
	td.className = "ta_c";
	input = $E("input");
	input.type = "button";
	input.value = "↓";
	input.onclick = function() {
		shiftDownRow(this);
	}
	td.appendChild(input);
	input = $E("input");
	input.type = "button";
	input.value = "↑";
	input.onclick = function() {
		shiftUpRow(this, 'header');
	}
	td.appendChild(input);
	input = $E("input");
	input.type = "hidden";
	input.name = "numbers[]";
	input.value = number;
	td.appendChild(input);
	tr.appendChild(td);
	//
	tbody.appendChild(tr);
}


function addStorage(id, subdir, filename) {
	if (window.opener && !window.opener.closed) {
		window.opener.addStorageInfo(id, subdir, filename);
	} else {
		alert("親ウインドウがありません。");
	}
}

function addStorageInfo(id, subdir, filename) {
	var url = "http://" + location.hostname + "/updir/storage/" + (subdir ? subdir + "/" : "") + filename;
	RE_insertImage(id, url);
}

function addTable(id, body) {
	if (window.opener && !window.opener.closed) {
		window.opener.addTableInfo(id, body);
	} else {
		alert("親ウインドウがありません。");
	}
}

function addTableInfo(id, body) {
	RE_inserthtml(id, body);
}

function changeColor(id, color) {
	if (window.opener && !window.opener.closed) {
		window.opener.changeColorInfo(id, color);
	} else {
		alert("親ウインドウがありません。");
	}
}

function cancelEdit() {
	$("view_mode").value = "add";
	$("view_data").value = "";
	if ($("name")) {
		$("name").value = "";
	}
	if ($("title")) {
		$("title").value = "";
	}
	if ($("visible")) {
		$("visible").checked = false;
	}
	$("regist").value = "追加";
	$("cancel").style.visibility = "hidden";
	clearHighlight();
}

function changeColorInfo(id, color) {
	var obj = $(id);
	obj.title = "#" + color;
	obj.style.backgroundColor = obj.title;
}

function changeUpdirImage(id, dir, subdir, filename, size) {
	var img = $(id);
	var src = "http://" + location.hostname + "/image/get/D/" + dir;
	if (subdir != "") {
		src += "/S/" + subdir;
	}
	src += "/F/" + filename;
	if (size) {
		src += "/R/" + size;
	}
	if (img.src != src) {
		img.src = src;
	}
}

function clearHighlight() {
	if (!selectedObj) return;
	var child = selectedObj.parentNode.parentNode.parentNode.firstChild;
	while (child) {
		if (child.tagName == "TR") {
			child.style.cssText = "";
		}
		child = child.nextSibling;
	}
}

function deleteCol(obj) {
	//var tr = $("icons");
	//tr.removeChild(obj.parentNode);
	obj.parentNode.parentNode.removeChild(obj.parentNode);
}

function deleteRow(obj) {
	obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);
}

function doAction(action, target) {
	document.forms[0].action = action;
	document.forms[0].target = target ? target : "";
}

function doPopup(url) {
	window.open(
		"http://" + location.hostname + url
	);
}

function doRedirect(url, secure) {
	//location.href = (secure ? "https" : "http") + "://" + location.hostname + url;
	location.href = (secure ? "http" : "http") + "://" + location.hostname + url;
}

function doSubmit(mode, data) {
	var viewMode = $("view_mode");
	var viewData = $("view_data");
	var viewPage = $("view_page");
	var viewCurr = $("view_curr");
	if (mode == "search" && viewPage) {
		viewPage.value = 1;
	} else if (mode == "search_group" && viewPage) {
		viewPage.value = 1;
		viewCurr.value = data;
	} else if (mode == "prev_page" && viewPage) {
		viewPage.value--;
	} else if (mode == "next_page" && viewPage) {
		viewPage.value++;
	} else if (mode == "jump_page" && viewPage) {
		viewPage.value = data;
	} else if (mode == "shiftdown" || mode == "shiftup") {
	} else if (mode == "add") {
	} else if (mode == "update") {
	} else if (mode == "delete") {
		if (!confirm("削除しますか?")) return;
	} else if (mode == "chdir") {
		viewCurr.value = data;
	} else if (mode == "status") {
		if (!confirm("変更しますか?")) return;
	} else if (mode == "complete") {
		if (!confirm("完了しますか?")) return;
	} else if (mode == "sendback") {
		if (!confirm("返品処理しますか?")) return;
	} else if (mode == "delivery") {
		if (!confirm("更新しますか?")) return;
	} else {
		return;
	}
	viewMode.value = mode;
	viewData.value = data;
	document.forms[0].action = location.href;
	document.forms[0].submit();
}

function genTable(id) {
	var cols = $("cols").selectedIndex + 1;
	var rows = $("rows").selectedIndex + 1;
	var colwidth = $("colwidth").value;
	var dir = $("dir").selectedIndex;
	var size = $("size").selectedIndex + 1;
	var bgcolor = $("bgcolor").title;
	var bdcolor = $("bdcolor").title;
	var padding = $("padding").selectedIndex
	if (colwidth.match(/[0-9]+/g) != colwidth || colwidth <= 0) {
		alert("列幅は0より大きい数字を入力してください。");
		return;
	}
	var r = parseInt("0x" + bgcolor.substr(1, 2));
	var g = parseInt("0x" + bgcolor.substr(3, 2));
	var b = parseInt("0x" + bgcolor.substr(5, 2));
	var brightness = 3 * r + 6 * g + b;
	var header;
	var value;
	var html = "<table border=1 bordercolor=\"" + bdcolor + "\" style=\"border-collapse: collapse\">";
	for (var y = 1; y <= rows; y++) {
		html += "<tr>";
		for (var x = 1; x <= cols; x++) {
			header = 0;
			value = y + ":" + x;
			if ((dir == 0 && y == 1) || (dir == 1 && x == 1)) {
				html += "<th bgcolor=\"" + bgcolor + "\"";
				header = 1;
			} else {
				html += "<td";
			}
			if (y == 1) {
				html += " width=" + colwidth;
			}
			if (padding > 0) {
				html += " style=\"padding: " + padding + "px\"";
			}
			html += "><font";
			if (header > 0 && brightness > 1280) {
				html += " color=\"#333333\"";
			}
			html += " size=" + size+ ">" + value + "</font>";
			if (header > 0) {
				html += "</th>";
			} else {
				html += "</td>";
			}
		}
		html += "</tr>";
	}
	html += "</table>";
	RE_inserthtml(id, html);
}

function selectCategory(dir) {
	if (dir == 0) {
		var src = $("category_tree");
		var dst = $("category_save");
	} else {
		var src = $("category_save");
		var dst = $("category_tree");
	}
	var option = src.firstChild;
	while (option) {
		var nextOption = option.nextSibling;
		if (option.tagName == "OPTION" && option.selected) {
			dst.appendChild(option.cloneNode(true));
			src.removeChild(option);
		}
		option = nextOption;
	}
}

function setSelectMultiple(id) {
	var select = $(id);
	if (!select) return;
	var option = select.firstChild;
	while (option) {
		if (option.tagName == "OPTION") {
			option.selected = true;
		}
		option = option.nextSibling;
	}
}

function shiftDownRow(obj) {
	var curr = obj.parentNode.parentNode;
	if (!curr) return;
	var next = getNextNode(curr, "TR");
	if (!next) return;
	curr.parentNode.insertBefore(next, curr);
}

function shiftUpRow(obj, header_id) {
	var curr = obj.parentNode.parentNode;
	if (!curr) return;
	var prev = getPreviousNode(curr, "TR");
	if (!prev || prev.id == header_id) return;
	curr.parentNode.insertBefore(curr, prev);
}

function showBannerPopup() {
	var w;
	w = window.open(
		"http://" + location.hostname + "/control/popup/banner",
		"banner",
		"width=520,height=690"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showBlockPopup(position) {
	var w;
	w = window.open(
		"http://" + location.hostname + "/control/popup/block/P/" + position,
		"block",
		"width=520,height=620"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showColorPopup(id) {
	var w;
	w = window.open(
		"http://" + location.hostname + "/control/popup/color/id/" + id,
		"color",
		"width=520,height=720"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showProductPopup(d) {
	var w;
	w = window.open(
		"http://" + location.hostname + "/control/popup/product/D/" + d,
		"product",
		"width=520,height=690"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showStoragePopup(id) {
	var w;
	w = window.open(
		"http://" + location.hostname + "/control/popup/storage/id/" + id,
		"storage",
		"width=520,height=710"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showTablePopup(id) {
	var w;
	w = window.open(
		"http://" + location.hostname + "/control/popup/table/id/" + id,
		"table",
		"width=520,height=620"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function startEdit(obj, id, name, title, visible) {
	selectedObj = obj;
	$("view_mode").value = "update";
	$("view_data").value = id;
	if ($("name")) {
		$("name").value = name;
	}
	if ($("title")) {
		$("title").value = title;
	}
	if ($("visible")) {
		$("visible").checked = visible;
	}
	$("regist").value = "変更";
	$("cancel").style.visibility = "visible";
	clearHighlight();
	selectedObj.parentNode.parentNode.style.cssText = "background-color: #FFFACD";
}

function toggleCheckbox(name, value) {
	var i = 0;
	while (document.forms[0].elements[name + "[" + i + "]"]) {
		document.forms[0].elements[name + "[" + i + "]"].checked = value;
		i++;
	}
}

function toggleSideBarVisible(obj, id) {
	var tr = obj.parentNode.parentNode;
	if (obj.value == "ON") {
		obj.value = "OFF";
		tr.className = "bg_highlight";
		$(id).value = 1;
	} else {
		obj.value = "ON";
		tr.className = "";
		$(id).value = 0;
	}
}

