var submenu_timer;

function addStorage(id, subdir, filename) {
	if (window.opener && !window.opener.closed) {
		window.opener.addStorageInfo(id, subdir, filename);
	} else {
		alert("親ウインドウがありません。");
	}
}

function addStorageInfo(target, subdir, filename) {
	var id;
	if (target == 0) {
		id = "html";
	} else if (target == 1) {
		id = "caption";
	} else if (target == 2) {
		id = "body";
	} else if (target == 3) {
		id = "header";
	} else if (target == 4) {
		id = "footer";
	}
	if (id < 2) {
		if ($(id).style.display == "none") {
			togglePreview(id);
		}
		var tag = "<img src=\"http://" + location.hostname + "/updir/storage/";
		if (subdir) tag += subdir + "/";
		tag += filename + "\" border=0>";
		insertTag(id, tag);
	} else {
		var url = "http://" + location.hostname + "/updir/storage/" + (subdir ? subdir + "/" : "") + filename;
		RE_insertImage(id, url);
	}
}

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 changeStorageImage(subdir, filename, width, height) {
	var img = $("image_view");
	var src = "http://" + location.hostname + "/updir/storage/";
	if (subdir != "") {
		src += subdir + "/";
	}
	src += filename;
	if (img.src != src) {
		img.src = src;
		img.style.width = width + "px";
		img.style.height = height + "px";
	}
}

function changeUploadImage(filename, width, height) {
	var index = $("view_index").value;
	var img = $("upload_image_" + index);
	var btn = $("upload_button_" + index);
	var tmp = $("upload_temp_" + index);
	var src = "http://" + location.hostname + "/updir/temp/" + filename;
	img.src = src;
	img.style.width = width + "px";
	img.style.height = height + "px";
	btn.value = "削除";
	btn.onclick = function() {
		doDelete(index);
	}
	tmp.value = filename;
}

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 doAction(action, target) {
	document.forms[0].action = action;
	document.forms[0].target = target ? target : "";
}

function doDelete(index) {
	if (!confirm("画像を削除しますか?")) return;
	var img = $("upload_image_" + index);
	var btn = $("upload_button_" + index);
	var tmp = $("upload_temp_" + index);
	img.src = "";
	btn.value = "アップロードできます...";
	btn.onclick = function() {
		showUploadDialog(index);
	}
	tmp.value = "";
}

function doRedirect(url) {
	location.href = "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 == "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) {
		viewCurr.value = data;
	} else if (mode == "asc" || mode == "desc") {
	} else {
		return;
	}
	viewMode.value = mode;
	viewData.value = data;
	document.forms[0].action = location.href;
	document.forms[0].submit();
}

function doUpload() {
	if ($("upload_file").value == "") {
		alert("ファイルが選択されていません。");
		return;
	}
	document.forms[0].target = "_dummy";
	document.forms[0].submit();
}

function hideSubMenu() {
    submenu_timer = setTimeout(function() {$("submenu").style.display = "none";}, 1);
}

function hideUploadDialog() {
	var e = $("upload_error");
	if (!e) return;
	var d = $("upload_dialog");
	if (!d) return;
	e.style.display = "none";
	d.style.display = "none";
}

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 hideReplaceDialog() {
	$("replace_dialog").style.display = "none";
}

function showReplaceDialog(name) {
	$("replace").name = "replace" + (name ? "_" + name : "");
	var d = $("replace_dialog");
	d.style.display = "block";
	d.style.left = (scrollLeft() + parseInt((clientWidth() - d.offsetWidth) * 0.5)) + "px";
	d.style.top = (scrollTop() + parseInt((clientHeight() - d.offsetHeight) * 0.5)) + "px";
}

function showStorageDialog(target) {
	var w;
	w = window.open(
		"http://" + location.hostname + "/control/storage/popup/T/" + target,
		"storages",
		"width=620,height=650"
	);
	if (w && !w.closed) {
		w.focus();
	}
}

function showSubMenu(obj) {
	var coord = YAHOO.util.Dom.getXY(obj);
	var submenu = $("submenu");
	var menus = new Array();
	var d;
	var a;
	dropChild(submenu);
	if (obj.id == "submenu1") {
		menus[0] = "user,ユーザー";
		menus[1] = "info,会社案内";
		menus[2] = "doc/copyright,利用規約";
		menus[3] = "doc/privacy,プライバシーポリシー";
		menus[4] = "config,SEO情報";
	} else if (obj.id == "submenu2") {
		menus[0] = "news,新着情報";
		menus[1] = "content,コンテンツ";
		menus[2] = "page,フリーページ";
		menus[3] = "showcase,ショーケース";
	} else if (obj.id == "submenu3") {
		menus[0] = "banner,バナー庫";
		menus[1] = "storage,画像庫";
	} else if (obj.id == "submenu4") {
		menus[0] = "log,ログイン情報";
	}
	var i;
	var params;
	for (i = 0; i < menus.length; i++) {
		params = menus[i].split(",");
		d = $E("div");
		d.className = "submenu_item";
		d.onmouseout = function() {
			this.style.backgroundColor = "#FFFFFF";
			this.style.zIndex = "100";
			hideSubMenu(obj);
		}
		d.onmouseover = function() {
			this.style.backgroundColor = "#F0F0F0";
			clearTimeout(submenu_timer);
		}
		a = $E("a");
		a.href = "http://" + location.hostname + "/control/" + params[0];
		a.appendChild($T(params[1]));
		d.appendChild(a);
		submenu.appendChild(d);
	}
	submenu.style.left = coord[0] + "px";
	submenu.style.top = (coord[1] + obj.offsetHeight + 10) + "px";
	submenu.style.display = "block";
}

function showUploadDialog(index) {
	var d = $("upload_dialog");
	if (!d) return;
	d.style.display = "block";
	d.style.left = scrollLeft() + parseInt((clientWidth() - d.offsetWidth) * 0.5) + "px";
	d.style.top = scrollTop() + parseInt((clientHeight() - d.offsetHeight) * 0.5) + "px";
	var i = $("view_index");
	if (!i) return;
	i.value = index;
}

function showUploadError(value) {
	var e = $("upload_error");
	dropChild(e);
	e.appendChild($T(value));
	e.style.display = "block";
}

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 startEdit(obj, id, name, title, visible, url) {
	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;
	}
	if ($("url")) {
		$("url").value = url;
	}
	$("regist").value = "変更";
	$("cancel").style.visibility = "visible";
	clearHighlight();
	selectedObj.parentNode.parentNode.style.cssText = "background-color: #FFFACD";
}
