var addUser = {
	m_szFrom : null,
	m_nScrollTop : 0,

	getAddLayer : function(pFrom)
	{
		Common._createBackGround();
		Common._createProgress();

		this.m_szFrom = pFrom;

		getAjaxData(Common.getRoot() + "user_add_ajax", null, function(pData) {
			if (typeof(pData) != "object" || pData.resultCode != RT_OK)
			{
				alert(addressbookAlert.getMessage("REQUEST_ERROR"));

				Common._closeBackGround();
				return;
			}

			if (pData.resultCode == RT_OK)
			{
				if ($("popupBaseA"))
					$("popupBaseA").parentNode.removeChild($("popupBaseA"));

				var popupBaseA = document.createElement("div");
				popupBaseA.setAttribute("id", "popupBaseA");
				popupBaseA.style.width = "700px";
				popupBaseA.style.height = "550px";
				popupBaseA.innerHTML = pData.result;
				document.getElementById("outline").appendChild(popupBaseA);
				$("popupBaseA").toCenter();
				$("name").focus();

				Common._closeProgress();

				if (pFrom != undefined)
				{
					if (pFrom == "shared" && $("sharedmail"))
						$("sharedmail").checked = true;
					else if (pFrom == "bill" && $("usebill"))
						$("usebill").checked = true;
					else if (pFrom == "mail" && $("usemail"))
					{
						$("usemail").checked = true;
						addUser.checkMail();
					}
				}
			}
		});
		addUser.m_nScrollLeft = document.documentElement.scrollLeft;
	},

	setFocusStyle : function(pObj)
	{
		$$("input").each(function(i, v)
		{
			if (i.type == "text" || i.type == "password")
				i.className = "input_add";
		});

		pObj.className = "input_red";
	},

	checkValue : function(pObj)
	{
		var topPos = 0;

		$("userid").value = Common.trim($("userid").value);
		$("name").value = Common.trim($("name").value);
		$("password").value = Common.trim($("password").value);
		$("repassword").value = Common.trim($("repassword").value);

		var t = Common.getBounds($("popupBaseA"));

		var oObj = "warnDesc_" + pObj.id;
		$(oObj).style.left = "420px";

		switch(pObj.id)
		{
			case "name" :
				topPos = "108px";

				if (!validCheck.require(pObj.value))
				{
					$(oObj).style.top = topPos;
					$(oObj).innerHTML = "이름을 입력해주세요.";
					$(oObj).style.display = "";
					return false;
				}

				if (Common.byte_check(pObj.value) < 2 || Common.byte_check(pObj.value) > 20)
				{
					$(oObj).style.top = topPos;
					$(oObj).innerHTML = "한글1자 또는 영문2자 이상, 한글10자 또는 영문 20자 이하 입니다.";
					$(oObj).style.display = "";
					return false;
				}
				$(oObj).style.display = "none";
				$(oObj).innerHTML = "";

				return true;

			case "userid" :
				topPos = "150px";

				if (!validCheck.require(pObj.value))
				{
					$(oObj).style.top = topPos;
					$(oObj).innerHTML = "ID를 입력해주세요.";
					$(oObj).style.display = "";
					return false;
				}

				getAjaxData(Common.getRoot() + "accountrequest/CheckID", $H({"userid" : $("userid").value}), function(pData) {
					if (typeof(pData) != 'object')
					{
						alert('서버와 통신 중 오류가 발생했습니다.\n\n잠시 후 다시 시도하십시오.');
						return false;
					}

					$(oObj).style.top = topPos;
					$(oObj).innerHTML = pData.message;
					$(oObj).style.display = "";

					if (pData.resultCode != RT_OK) $("idcheck").value = "";
					else
					{
						$(oObj).innerHTML = "";
						$("idcheck").value = "Y";
						$(oObj).style.display = "none";
					}
				}, false);

				if ($("idcheck").value != "Y")
				{
					if ($(oObj).style.display == "") return false;

					$(oObj).style.top = topPos;
					$(oObj).innerHTML = "ID중복 확인을 하셔야 합니다.";
					$(oObj).style.display = "";
					return false;
				}

				return true;

			case "password" :
				topPos = "192px";

				if (!validCheck.require(pObj.value))
				{
					$(oObj).style.top = topPos;
					$(oObj).innerHTML = "비밀번호를 입력해주세요.";
					$(oObj).style.display = "";
					return false;
				}

				if ($("userid").value == $("password").value)
				{
					$(oObj).style.top = topPos;
					$(oObj).innerHTML = "ID와 비밀번호가 같을 수 없습니다.";
					$(oObj).style.display = "";
					return false;
				}

				var checkResult = false;

				getAjaxData(Common.getRoot() + "accountrequest/checkPassword", $H({"password" : $("password").value}), function(pData) {
					if (typeof(pData) != 'object')
					{
						alert('서버와 통신 중 오류가 발생했습니다.\n\n잠시 후 다시 시도하십시오.');
						return false;
					}

					if (pData.resultCode == RT_OK)
					{
						$(oObj).innerHTML = "";
						$(oObj).style.display = "none";
						checkResult = true;
					}
					else
					{
						$(oObj).style.top = topPos;
						$(oObj).innerHTML = pData.message;
						$(oObj).style.display = "";
					}
				}, false);

				return checkResult;

			case "repassword" :
				topPos = "234px";

				if (!validCheck.require(pObj.value))
				{
					$(oObj).style.top = topPos;
					$(oObj).innerHTML = "비밀번호를 한번 더 입력해주세요.";
					$(oObj).style.display = "";
					return false;
				}

				if ($("repassword").value != $("password").value)
				{
					$(oObj).style.top = topPos;
					$(oObj).innerHTML = "입력된 비밀번호가 다릅니다.";
					$(oObj).style.display = "";
					return false;
				}

				$(oObj).innerHTML = "";
				$(oObj).style.display = "none";

				return true;

			case "mailsize" :

				if ($("usemail"))
				{
					if (!$("usemail").checked) return true;

					if ($("usemail").checked)
					{
						$("mailsize").value = Common.trim($("mailsize").value);

						topPos = "274px";
						if (!validCheck.numeric($("mailsize").value))
						{
							$(oObj).style.top = topPos;
							$(oObj).innerHTML = "메일 용량은 숫자만 가능합니다.";
							$(oObj).style.display = "";
							return false;
						}

						if (parseInt($("mailsize").value, 10) < parseInt($("std_size").value, 10) || parseInt($("mailsize").value, 10) > parseInt($("mail_free_size").value, 10))
						{
							$(oObj).style.top = topPos;
							$(oObj).innerHTML = "MAIL 용량은 남은용량보다 작고 " + $("std_size").value + "MB 보다 커야 합니다.";
							$(oObj).style.display = "";
							return false;
						}
					}
				}

				return true;

			case "webhardsize" :
				if ($("usewebhard"))
				{
					if (!$("usewebhard").checked) return true;

					$("webhardsize").value = Common.trim($("webhardsize").value);

					if ($("usemail")) topPos = "314px";
					else topPos = "274px";

					if ($("usewebhard").checked)
					{
						if (!validCheck.numeric($("webhardsize").value))
						{
							$(oObj).style.top = topPos;
							$(oObj).innerHTML = "웹하드 용량은 숫자만 가능합니다.";
							$(oObj).style.display = "";
							return false;
						}

						if (parseInt($("webhardsize").value, 10) > parseInt($("hard_free_size").value, 10) || parseInt($("webhardsize").value, 10) < parseInt($("hardsize").value, 10))
						{
							$(oObj).style.top = topPos;
							$(oObj).innerHTML = "웹하드 용량은 " + $("hardsize").value + "MB 보다 크고 " +  Math.floor($("hard_free_size").value) + "MB 보다 작아야 합니다.";
							$(oObj).style.display = "";
							return false;
						}
					}
				}

				return true;
		}
	},

	closePopup : function()
	{
		if ($("popupBaseA"))
		{
			$("popupBaseA").style.display = "none";
			$("popupBaseA").parentNode.removeChild($("popupBaseA"));

			if (addUser.m_szFrom == "bill") location.reload();

			Common._closeBackGround();
		}
	},

	checkMail : function()
	{
		// 일반
		if ($("std_size"))
		{
			if ($("usemail").checked)
			{
				$("mailsize").readOnly = "";
				$("mailsize").value = $("std_size").value;
			}
			else
			{
				$("mailsize").readOnly = "true";
				$("mailsize").value = 0;
			}
		}
	},

	CheckWebhard : function()
	{
		// 일반
		if ($("webhardsize"))
		{
			if ($("usewebhard").checked)
			{
				$("webhardsize").readOnly = "";
				$("webhardsize").value = $("hardsize").value;
			}
			else
			{
				$("webhardsize").readOnly = "true";
				$("webhardsize").value = 0;
			}
		}
	},

	saveUser : function(pFlag)
	{
		if ($("webhardsize"))
		{
			if (!addUser.checkValue($("webhardsize")))
			{
				$("webhardsize").focus();
				return;
			}
		}

		if (!addUser.checkValue($("name")))
		{
			$("name").focus();
			return;
		}
		if (!addUser.checkValue($("userid")))
		{
			$("userid").focus();
			return;
		}
		if (!addUser.checkValue($("password")))
		{
			$("password").focus();
			return;
		}
		if (!addUser.checkValue($("repassword")))
		{
			$("repassword").focus();
			return;
		}

		if ($("mailsize"))
		{
			if (!addUser.checkValue($("mailsize")))
			{
				$("mailsize").focus();
				return;
			}
		}

		var nMailSize = 0;
		var nWebhardSize = 0;
		var nWebhardPermission = 0;
		var billFlag = "N";
		var sharedMailFlag = "N";

		if ($("sharedmail"))
		{
			nMailSize = 0;
			if ($("sharedmail").checked) sharedMailFlag = "Y";
		}
		else if ($("mailsize"))
		{
			if ($("usemail").checked)
				nMailSize = $("mailsize").value;
		}

		if ($("usewebhard"))
		{
			if ($("usewebhard").checked) nWebhardSize = $("webhardsize").value;

			if ($("read").checked) nWebhardPermission += 2;
			if ($("write").checked) nWebhardPermission += 4;
			if ($("delete").checked) nWebhardPermission += 1;
		}

		if ($("usebill"))
		{
			if ($("usebill").checked)
				billFlag = "Y";
		}

		$("buttonArea").style.display = "none";
		$("progressArea").style.display = "";

		var oParam = $H({"id" : $("userid").value, "name" : $("name").value, "passwd" : $("password").value, "mailsize" : nMailSize, "webhardsize" : nWebhardSize, "webhard_permission" : nWebhardPermission, "bill_flag" : billFlag, "shared_flag" : sharedMailFlag});

		getAjaxData(Common.getRoot() + "admin/Orgmain/addMemberDirect", oParam, function(pData) {
			if (typeof(pData) != 'object')
			{
				alert('서버와 통신 중 오류가 발생했습니다.\n\n잠시 후 다시 시도하십시오.');

				$("buttonArea").style.display = "";
				$("progressArea").style.display = "none";

				return false;
			}

			alert(pData.message);

			if (pData.resultCode2 != RT_OK)
			{
				$("buttonArea").style.display = "";
				$("progressArea").style.display = "none";
			}
			else
			{
				if (pFlag == undefined)
				{
					addUser.closePopup();
				}
				else
				{
					if (addUser.m_szFrom != "" && addUser.m_szFrom != undefined)
						addUser.getAddLayer(addUser.m_szFrom);
					else
						addUser.getAddLayer();
				}
			}

		}, false);

		// 계속 추가가 아닌 경우
		if (pFlag == undefined)
		{
			if (addUser.m_szFrom == "bill") location.reload();
		}

		return;
	}
}

