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 = location.protocol + "//" + 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 addFile(number, name, url, year, month, day, target) {
	if (window.opener && !window.opener.closed) {
		window.opener.addFileInfo(number, name, url, year, month, day, target);
	} else {
		alert("親ウインドウがありません。");
	}
}

function addFileInfo(number, name, url, year, month, day, target) {
	var tbody = $("item_" + target);
	var tr = $E("tr");
	var td;
	var input;
	var index = getFileInfoIndex(target);
	// №
	td = $E("td");
	td.className = "wp100 tc";
	input = $E("input");
	input.type = "hidden";
	input.name = "files[" + target + "][]";
	input.value = number;
	td.appendChild(input);
	td.appendChild($T((index + 1)));
	tr.appendChild(td);
	// ファイル名
	td = $E("td");
	td.className = "wp200 tl";
	td.appendChild($T(name));
	tr.appendChild(td);
	// 更新日時
	td = $E("td");
	td.className = "wp200 tl";
	td.appendChild($T(year + "年" + month + "月" + day + "日"));
	tr.appendChild(td);
	// url
	td = $E("td");
	td.className = "wp180 tl";
	td.appendChild($T(url));
	tr.appendChild(td);
	// 操作
	td = $E("td");
	td.className = "wp70 tc";
	input = $E("input");
	input.type = "button";
	input.value = "削除";
	input.onclick = function() {
		delFileInfo(this, target);
	}
	td.appendChild(input);
	tr.appendChild(td);
	//
	tr.title = index;
	tbody.appendChild(tr);
}


function addStorage(id, subdir, filename) {
	if (window.opener && !window.opener.closed) {
		window.opener.addStorageInfo(id, subdir, filename);
	} else {
		alert("親ウインドウがありません。");
	}
}

function addStorageJ(id, subdir, filename) {
	if (window.opener && !window.opener.closed) {
		window.opener.addStorageInfoJ(id, subdir, filename);
	} else {
		alert("親ウインドウがありません。");
	}
}

function addStorageInfo(id, subdir, filename) {
	var url = location.protocol + "//" + location.hostname + "/updir/storage/" + (subdir ? subdir + "/" : "") + filename;
	RE_insertImage(id, url);
}

function addStorageInfoJ(id, subdir, filename) {
	var url = location.protocol + "//" + location.hostname + "/updir/storagej/" + (subdir ? subdir + "/" : "") + filename;
	RE_insertImage(id, url);
}


function cancelEdit(disabled) {
	$("view_mode").value = "add";
	$("view_data").value = "";
	if ($("name")) {
		$("name").value = "";
	}
	$("regist").value = "追加";
	if (disabled) {
		$("regist").disabled = true;
	}
	$("cancel").style.visibility = "hidden";
	clearHighlight();
}

function cancelFaqEdit(disabled) {
	$("view_mode").value = "add";
	$("view_data").value = "";
	if ($("title")) {
		$("title").value = "";
	}
	$("regist").value = "追加";
	if (disabled) {
		$("regist").disabled = true;
	}
	$("cancel").style.visibility = "hidden";
	clearHighlight();
}

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 changeUpdirImage(id, dir, subdir, filename, size) {
	var img = $(id);
	var src = location.protocol + "//" + 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 deleteRow(obj) {
	obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);
}

function delFileInfo(obj, target) {
	var tbody = $("item_" + target);
	tbody.removeChild(obj.parentNode.parentNode);
}

function doAction(action, target) {
	document.forms[0].action = action;
	document.forms[0].target = target ? target : "";
}

function doPopup(url, secure) {
	window.open(
		(secure ? "http" : "https") + "://" + location.hostname + url
	);
}

function doRedirect(url, secure) {
	location.href = (secure ? "http" : "https") + "://" + 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 == "clone") {
		if (!confirm("複写しますか?")) return;
	} else if (mode == "chdir") {
		viewCurr.value = data;
	} else {
		return;
	}
	viewMode.value = mode;
	viewData.value = data;
	document.forms[0].action = location.href;
	document.forms[0].target = "";
	document.forms[0].submit();
}

function getFileInfoIndex(target) {
	var parent = $("item_" + target);
	var child = parent.firstChild;
	var index = -1;
	while (child) {
		if (child.tagName == "TR" && child.title != "" && child.title > index) {
			index = parseInt(child.title);
		}
		child = child.nextSibling;
	}
	index++;
	return index;
}

function insertTag(id, tag) {
	tag = tag.replace(/\t/g, "\n");
	var textarea = $(id);
	textarea.focus();
	if (document.selection) {
		var range = document.selection.createRange();
		range.text = tag;
	} else if (textarea.selectionStart != undefined) {
		var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		textarea.value = textarea.value.substring(0, start) + tag + textarea.value.substring(end);
		textarea.setSelectionRange(start + tag.length, start + tag.length);
	} else {
		textarea.value += tag;
	}
}

function insertUrl(url) {
	var obj = $("url");
	if (obj) {
		obj.value = url;
	}
}

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 sendUrl(url) {
	if (window.opener && !window.opener.closed) {
		window.opener.insertUrl(url);
		window.close();
	} else {
		alert("親ウインドウがありません。");
	}
}

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(
		location.protocol + "//" + location.hostname + "/control/popup/banner",
		"banner",
		"width=520,height=710"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showBlockPopup(position) {
	var w;
	w = window.open(
		location.protocol + "//" + location.hostname + "/control/popup/block/P/" + position,
		"block",
		"width=520,height=630"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showFilejDialog(target) {
	var w;
	w = window.open(
		location.protocol + "//" + location.hostname + "/controlj/file/popup/T/" + target,
		"updatej",
		"width=620,height=650"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showStoragePopup(id) {
	var w;
	w = window.open(
		location.protocol + "//" + location.hostname + "/control/popup/storage/ID/" + id,
		"storage",
		"width=540,height=535"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showStoragejDialog(id) {
	var w;
	w = window.open(
		location.protocol + "//" + location.hostname + "/controlj/popup/storage/ID/" + id,
		"storagej",
		"width=540,height=535"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showUpdatejDialog() {
	var w;
	w = window.open(
		location.protocol + "//" + location.hostname + "/controlj/update/popup",
		"updatej",
		"width=620,height=450"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function startEdit(obj, curr, name) {
	selectedObj = obj;
	$("view_mode").value = "update";
	$("view_data").value = curr;
	if ($("name")) {
		$("name").value = name;
	}
	$("regist").value = "変更";
	$("regist").disabled = false;
	$("cancel").style.visibility = "visible";
	clearHighlight();
	selectedObj.parentNode.parentNode.style.cssText = "background-color: #CCFFFF";
}

function startFaqEdit(obj, id, title, visible) {
	selectedObj = obj;
	$("view_mode").value = "update";
	$("view_data").value = id;
	if ($("title")) {
		$("title").value = title;
	}
	for (var i = 0; i < 2; i++) {
		if ($("visible" + i)) {
			if (i == visible) {
				$("visible" + i).checked = true;
			} else {
				$("visible" + i).checked = false;
			}
		}
	}
	$("regist").value = "変更";
	$("regist").disabled = false;
	$("cancel").style.visibility = "visible";
	clearHighlight();
	selectedObj.parentNode.parentNode.style.cssText = "background-color: #CCFFFF";
}

function toggleCheckbox(name, value) {
	var i = 0;
	while (document.forms[0].elements[name + "[" + i + "]"]) {
		document.forms[0].elements[name + "[" + i + "]"].checked = value;
		i++;
	}
}

function togglePreview(id) {
	var textarea = $(id);
	if (!textarea) return;
	var div = $("preview_" + id);
	if (!div) return;
	if (textarea.style.display == "" || textarea.style.display == "block") {
		textarea.style.display = "none";
		div.style.display = "block";
		div.innerHTML = textarea.value;
	} else {
		div.style.display = "none";
		textarea.style.display = "block";
	}
}

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;
	}
}
