var form; // 사용할 폼의 객체
var beanName; // 전송할  빈즈 이름
var keyName; // 전송할 키의 이름
var keyAppendFlag = true; // 전송할 키의 이름 뒤에 "Key" 값 추가 여부
var lineRun = true; // 실행 여부. 라인(tr) 클릭 이벤트 사용 시 버튼(td)의 클릭 이벤트 페이지 이동을 위해 사용.
var bCancel = false; // 취소 여부

function showAlert()
{
	alert("공사중입니다.");
	void(0);
}

// 숨겨진 페이지 활용시
function goHiddenPage(url)
{
	parent.hidden.location = url;
}

// 새창
function openWindow(url, width, height, scrollbars, options)
{
	var win;

	if (width == null || height == null)
	{
		win = window.open(url);
	}
	else
	{
		var scrollbar = (scrollbars != null ? scrollbars : "no");
		var option = (options != null ? options : "");

		if (height > screen.availHeight)
		{
			scrollbar = "yes";
		}

		win = window.open(url, "", "width=" + width + ",height=" + height + ",scrollbars=" + scrollbar + "," + option);
	}

	if (win != null)
	{
		win.focus();
	}
	else
	{
		alert("팝업이 차단되었습니다. 팝업차단을 해제하세요.");
	}

//	return win;
	void(0);
}

// 디버깅용 윈도우
function createDebugWindow()
{
	document.open();
	document.writeln('<div id="debugw" onclick="this.style.display=\'none\'" style="position:absolute;background-color:lightyellow;padding:2px;border:1px solid black;display:none"></div>');
	document.close();
}

// 디버깅용
function debug(str)
{
	if (debugw != null)
	{
		if (debugw.style.display == "none")
		{
			debugw.style.display = "block";
		}
		debugw.innerHTML += str + "<br />";
	}
}

// 상단메뉴 롤오버시
function showMenu(index)
{
	for (var i = 0; i < sub.length; i++)
	{
		if (i == index)
		{
			sub[i].style.display = 'block';
		}
		else
		{
			sub[i].style.display = 'none';
		}
	}
}

// 좌측메뉴 열기/닫기
function showSubMenu(index)
{
	if (index.style.display == 'block')
	{
		index.style.display = 'none';
	}
	else
	{
		index.style.display = 'block';
	}
}

// 폼 초기값 설정
// form : 폼이름
// beanName : 빈즈명
// keyName : 키이름
// keyAppendFlag : 키이름 뒤에 "Key" 가 붙는지 여부 (true, false)
// (ex: boardForm(폼이름) => board(빈즈명 = 키이름), menuForm(폼이름) => menu(빈즈명 = 키이름))
function setForm(form, beanName, keyName, keyAppendFlag)
{
	this.form = form;
	this.beanName = beanName;
	if (keyName != null)
	{
		this.keyName = keyName;
	}
	else
	{
		this.keyName = this.beanName;
	}

	if (keyAppendFlag != null)
	{
		this.keyAppendFlag = keyAppendFlag;
	}
}

// 링크 클릭시 (페이징 초기화)
function goSearchPage()
{
	if (form["paramBean.page"] != null)
	{
		form["paramBean.page"].value = 0;
	}
	goPage("list");
}

// 링크 클릭시
function goPage(action, keyValue)
{
	if (!lineRun)
	{
		lineRun = true;
		return;
	}

	setAction(action, keyValue);

	form.submit();
}

// 검색 버튼(이미지) 클릭시 (페이징 초기화)
function checkSearchForm()
{
	if (form["paramBean.page"] != null)
	{
		form["paramBean.page"].value = 0;
	}

	return checkForm("list", 0, null, null);
}

// 버튼(이미지) 클릭시
function checkForm(action, keyValue, name, opt)
{
	var opt = (opt == null ? "삭제" : opt);
	var question = "정말로 " + opt + "하시겠습니까?";

	lineRun = false;

	if (name != null)
	{
		question = "\"" + name + "\"을(를)\n" + question;
	}

	if (action.lastIndexOf("All") == action.length - 3)
	{
		if (!checkList())
		{
			alert(opt + "할 항목을 선택하세요.");
			return false;
		}
	}

	if (action.indexOf("remove") != -1 || action.indexOf("cancel") != -1)
	{
		if (!confirm(question))
		{
			return false;
		}
	}

	setAction(action, keyValue);

	return true;
}

// 검색어 삭제 버튼(이미지) 클릭시
function checkNoSearchForm()
{
	form["paramBean.searchWord"].value = "";

	return checkSearchForm();
}

// 목록에서 체크리스트 모두선택 및 모두선택해제
function checkAll()
{
	var obj = form[keyName + (keyAppendFlag ? "Key" : "")];
	var chk = form.checkall;

	if (obj == null)
	{
		chk.blur();
		return;
	}
	if (obj.length == null)
	{
		obj.checked = !chk.checked;
	}
	else
	{
		for (var i = 0; i < obj.length; i++)
		{
			obj[i].checked = !chk.checked;
		}
	}

	chk.blur();
}

// 페이지 이동시 사용
function setPage(page)
{
	setAction("list");
	form["paramBean.page"].value = page;
	form.submit();
}

// '목록', '취소' 버튼 클릭시 (취소)
function cancelForm()
{
	setAction('list');
	bCancel = true;
}

// 타이틀 클릭시 정렬
function setOrderBy(orderBy)
{
	if (form["paramBean.orderBy"].value == orderBy)
	{
		form["paramBean.orderFlipFlag"].value = "true";
	}

	form["paramBean.orderBy"].value = orderBy;
	goPage("list", 0);
}

// validation
function isEmpty(methodName, name, wordFlag)
{
	var bean = form[beanName + "Bean." + methodName];
	
	if (wordFlag == null)
	{
		wordFlag = true;
	}

	if (bean.value == "")
	{
		alert(name + (wordFlag ? "을" : "를") + " 입력하세요");
		bean.focus();
		return true;
	}

	return false;
}

function isNotEmpty(methodName, name, wordFlag)
{
	var result = isEmpty(methodName, name, wordFlag);

	return (result ? false : true);
}

function isSelect(methodName, name, wordFlag)
{
	var bean = form[beanName + "Bean." + methodName];

	if (wordFlag == null)
	{
		wordFlag = true;
	}

	if (bean.value == "" || bean.value == "0")
	{
		alert(name + (wordFlag ? "을" : "를") + " 선택하세요");
		return false;
	}

	return true;
}

function isNotSelect(methodName, name, wordFlag)
{
	var result = isSelect(methodName, name, wordFlag);

	return (result ? false : true);
}

function isRadioCheck(methodName, name, wordFlag)
{
	var bean = form[beanName + "Bean." + methodName];

	if (wordFlag == null)
	{
		wordFlag = true;
	}

	if (bean.length == null)
	{
		if (!bean.checked)
		{
			alert(name + (wordFlag ? "을" : "를") + " 선택하세요");
			return false;
		}
	}
	else
	{
		for (var i = 0; i < bean.length; i++)
		{
			if (bean[i].checked)
			{
				return true;
			}
		}

		alert(name + (wordFlag ? "을" : "를") + " 선택하세요");
		return false;
	}

	return true;
}

function isNotRadioCheck(methodName, name, wordFlag)
{
	var result = isRadioCheck(methodName, name, wordFlag);

	return (result ? false : true);
}

function isNumber(methodName, name, wordFlag)
{
	var bean = form[beanName + "Bean." + methodName];

	if (wordFlag == null)
	{
		wordFlag = true;
	}

	if (isNaN(bean.value))
	{
		alert(name + (wordFlag ? "은" : "는") + " 숫자로 입력하세요");
		bean.focus();
		return false;
	}

	return true;
}

function isNotNumber(methodName, name, wordFlag)
{
	var result = isNumber(methodName, name, wordFlag);

	return (result ? false : true);
}

// 내부 함수

// action 값 설정과 key 값 설정
function setAction(action, keyValue)
{
	form.action.value = action;
	if (keyValue != null)
	{
		form[beanName + "Bean." + keyName + (keyAppendFlag ? "Key" : "")].value = keyValue;
	}
}

// 목록에서 체크박스 선택여부 확인
function checkList()
{
	var obj = form[keyName + (keyAppendFlag ? "Key" : "")];

	if (obj == null)
	{
		return true;
	}
	if (obj.length == null)
	{
		return obj.checked;
	}
	else
	{
		for (var i = 0; i < obj.length; i++)
		{
			if (obj[i].checked)
			{
				return true;
			}
		}

		return false;
	}
}

