// ----------------------------------------------------------------- //
//	폼값 처리를 위한 함수 시작
// ----------------------------------------------------------------- //
// 폼 요소의 값을 체크한다.
function ChkEle(str, type, min, max)
{
	var IsNum;
	var Block = true;
	str = Trim(str);

	if(str.length < 1) return false;

	if(type == "I")
	{ 
		str = str.replace(",", "");
		str = str.replace(".", "");
		if(!IsNumber(str)) return false;
		if(min >= 0 && max >= 0) return ChkLen(str, min, max);
	}
	else if(type == "C")
	{
		if(min >= 0 && max >= 0)
			return ChkStrLen(str,min,max)
	}
	else
		return false;
	return true;
}

function checkInput(mode)
{
	var str = event.srcElement.value;
	var title = event.srcElement.title;
	if (mode == 1)
	{
		if (IsOneByte(str)) return true;
		alert(title + "은(는) 영문 또는 숫자으로만 입력해주세요.");
		event.srcElement.value = getOneByte(str);
		event.srcElement.focus();
	}
	else if (mode == 2)
	{
		if (IsPhoneNumber(str)) return true;
		alert(title + "은(는) 숫자와 '-' 으로만 입력해주세요.");
		event.srcElement.value = getPhoneNumber(str);
		event.srcElement.focus();
	}
	else if (mode == 3)
	{
		if (IsNumber(str)) return true;
		alert(title + "은(는) 숫자만 입력해주세요.");
		event.srcElement.value = getNumber(str);
		event.srcElement.focus();
	}
	return false;
}

// 입력값이 숫자나문자인지 체크
function IsAlNum(str)
{
	for(var i=0; i<str.length; i++)
	{
		var chr = str.substr(i,1);
		if((chr < '0' || chr > '9') && (chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z'))
		{
			return false;
		}
	}
	return true;
}

// 아이디로 가능한 문자인지 체크
function IsIDStr(str)
{
	var chr;
	
	chr = str.substr(0,1);
	if((chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z'))
	{
		return false;
	}

	for(var i=0; i<str.length; i++)
	{
		chr = str.substr(i,1);
		if((chr < '0' || chr > '9') && (chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z') && chr != '_')
		{
			return false;
		}
	}
	return true;
}

// 현재 이벤트값이 숫자인지 아닌지
function onlyNumber(code)
{
	if (code < 48 || code > 57) return false;
	return true;
}

// 1byte 문자만 허용
function IsOneByte(str)
{
	var Str  = new String(str);
	var i;
	var strOneChar;

	for (i = 0; i < Str.length; i++)
	{
		strOneChar = Str.charAt(i);
		if (escape(strOneChar).length > 4 || strOneChar == "\n") return false;
	}
	return true;
}

// 1byte 문자만 리턴
function getOneByte(str)
{
	var Str  = new String(str);
	var i;
	var strOneChar = "";
	var strNewStr = "";

	for (i = 0; i < Str.length; i++)
	{
		strOneChar = Str.charAt(i);
		if (escape(strOneChar).length > 4 || strOneChar == "\n") continue;
		strNewStr += strOneChar;
	}
	return strNewStr;
}

// 입력값이 숫자인지 검사
function IsNumber(str)
{
	var temp;
	var digits = "0123456789";

	for(var i=0; i<str.length; i++)
	{
		temp = str.charAt(i);
		if(digits.indexOf(temp)==-1)
			return false
	}
	return true;
}

// 입력받은 문자열을 해당폼에 숫자만 리턴한다.
function getNumber(str)
{
	var Str  = new String(str);
	var i;
	var strOneChar = "";
	var strNewStr = "";

	for (i = 0; i < Str.length; i++)
	{
		strOneChar = Str.charAt(i);
		if (!IsNumber(strOneChar)) continue;
		strNewStr += strOneChar;
	}
	return strNewStr;
}

// 입력받은 문자열을 해당폼에 숫자만 리턴한다.
function GetNumber(form,str)
{
	var i;
	var chr;
	var returnNum = "";

	for(i=0; i<str.length; i++)
	{
		chr = str.charAt(i);
		if(IsNumber(chr))
			returnNum += chr;
	}
	form.value = returnNum;
}

// 입력값이 전화번호인지 검사
function IsPhoneNumber(str)
{
	var Str  = new String(str);
	var i;
	var strOneChar = "";
	var digits = "-0123456789";

	for (i = 0; i < Str.length; i++)
	{
		strOneChar = Str.charAt(i);
		if (digits.indexOf(strOneChar) == -1) return false
	}
	return true;
}

// 입력받은 문자열을 해당폼에 숫자만 리턴한다.
function getPhoneNumber(str)
{
	var Str  = new String(str);
	var i;
	var strOneChar = "";
	var strNewStr = "";

	for (i = 0; i < Str.length; i++)
	{
		strOneChar = Str.charAt(i);
		if (!IsPhoneNumber(strOneChar)) continue;
		strNewStr += strOneChar;
	}
	return strNewStr;
}

// 입력값의 길이가 min < str < max 인지 체크
function ChkStrLen(str, min, max)
{
	if(!min) min = 0;	
	if(!max) max = 999;
	min = parseInt(min);
	max = parseInt(max);

	if(str.length >= min && str.length <= max)
	{
		return true;
	}
	return false;
}

// 입력값의 범위가 min < str < max 인지 체크
function ChkLen(digit, min, max)
{
	digit = parseInt(digit);
	min = parseInt(min);
	max = parseInt(max);

	if(!(min >= 0)) min = 0;
	if(!(max >= 0)) max = 9;

	if(digit >= min && digit <= max)
		return true;
	return false;
}

// trim()함수 정의
function Trim(str)
{
	if(!str) str = "";
	return str.replace(/(^\s*)|(\s*$)/g, "");
}

// 에러 및 포커스
function Error(msg, ele)
{
	if(msg) alert(msg);
	if(ele) ele.focus();
	return false;
}
// ----------------------------------------------------------------- //
//	폼값 처리를 위한 함수 끝
// ----------------------------------------------------------------- //



// 주민번호 검사입력값 검사
function Is_SSNO(formnm, formname)
{
	var form = eval("document." + formnm + "." + formname);
	var f = eval("document." + formnm);
	var max_length;
	var next_form;
	var prev_form;

	// signform의 다음 elements의 이름을 구한다.
	for(var i=0; i<f.elements.length; i++)
	{
		if(f.elements[i].name == form.name)
			break;
	}
	next_form = eval(f.elements[i+1]);
	prev_form = eval(f.elements[i-1]);

	// 숫자인지 검사
	if(!IsNumber(form.value))
	{
		alert("주민등록번호는 숫자로만 구성됩니다.\n\n다시입력해주세요.");
		form.value="";
		form.focus();
		return false;
	}

	// 자리수검사 및 다음 폼으로 포커스 이동
	if(formname == "fr_cm_jumin1")
	{
		max_length = 6;
		if(form.value.length != max_length)
			return false;
		next_form.focus();
	}
	else
	{
		max_length = 7;

		if(form.value.length != max_length)
			return false;

		if(!CheckSSNO(prev_form.value, form.value))
		{
			alert("잘못된 주민등록번호입니다.\n\n정확하게 입력해주세요.");
			prev_form.value = "";
			form.value = "";
			prev_form.focus();
			return false;
		}
	}
	return true;
}

// 주민번호 검사입력값 검사
function IsSSNO(formname, mode)
{
	var form = eval("document.signform." + formname);
	var max_length;
	var next_form;
	var prev_form;

	// signform의 다음 elements의 이름을 구한다.
	for(var i=0; i<document.signform.elements.length; i++)
	{
		if(document.signform.elements[i].name == form.name)
			break;
	}
	next_form = eval(document.signform.elements[i+1]);
	prev_form = eval(document.signform.elements[i-1]);

	// 숫자인지 검사
	if(!IsNumber(form.value))
	{
		alert("주민등록번호는 숫자로만 구성됩니다.\n\n다시입력해주세요.");
		form.value="";
		form.focus();
		return false;
	}

	// 자리수검사 및 다음 폼으로 포커스 이동
	if(mode == 1)
	{
		max_length = 6;
		if(form.value.length != max_length)
			return false;
		next_form.focus();
	}
	else
	{
		max_length = 7;

		if(form.value.length != max_length)
			return false;

		if(!CheckSSNO(prev_form.value, form.value))
		{
			alert("잘못된 주민등록번호입니다.\n\n정확하게 입력해주세요.");
			prev_form.focus();
			prev_form.value = "";
			form.value = "";
			return false;
		}
	}

	return true;   
}

// 주민번호 검사
function CheckSSNO(ssno1, ssno2)
{
	var check_num = "234567892345";
	var ssno = ssno1 + ssno2;
	var res = 0;

	//-- 입력값 체크 시작
	if(ssno1.length != 6 || ssno2.length != 7)
		return false;

	if(!IsNumber(ssno1) || !IsNumber(ssno2))
		return false;

	if(ssno1.substr(2,2) > 12 || ssno1.substr(4,2) > 31)
		return false;

	if(ssno2.substr(0,1) > 2 || ssno2.substr(0,1) < 1)
		return false;
	//-- 입력값 체크 끝

	for(var i=0; i<12; i++)
		res += ssno.substr(i,1) * check_num.substr(i,1);
	res = (11 - (res % 11)) % 10;

	if(res != ssno.substr(12,1))
		return false;

	return true;
}

// 이메일 검사
function IsEmail(str)
{
	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check=/@[\w\-]+\./;
	var checkend=/\.[a-zA-Z]{2,3}$/;

	if(((str.search(exclude)!=-1)||(str.search(check))==-1)||(str.search(checkend)==-1))
		return false;
	else
		return true;
}

// 화면중앙에 새창띄우기 함수
function new_window(url, name, option, width, height, left, top)
{
	var win_width;
	var win_height;

	// 새창을 위한 좌표값을 구한다.
	if(screen.width < width)
	{
		win_width = 0;
		width = screen.width;
	}
	else
	{
		win_width = (screen.width - width) / 2;
	}

	if(screen.height < height)
	{
		win_height = 0;
		height = screen.height;
	}
	else
	{
		win_height = (screen.height - height) / 2;
	}

	// 옵션처리
	if(!option)
	{
		option = "resizable=no,scrollbars=yes,menubar=no,status=no";
	}

	if(left)
		win_width = left;

	if(top)
		win_height = top;

	// 새창을 띄운다.
	window.open(url,name,option+',width='+width+',height='+height+',left='+win_width+',top='+win_height);
}

// 로그인시 체크사항
function checkIt2()
{
	var form = eval("document.signform2");
	if(!ChkEle(form.fr_cm_id.value, "C", 4, 20)) return Error("아이디를 입력해주세요.\n\n아이디는 4자 이상입니다.!", form.fr_cm_id);
	if(!ChkEle(form.fr_cm_passwd.value, "C", 4, 30)) return Error("패스워드를 입력해주세요.\n\n패스워드는 4자 이상입니다.!", form.fr_cm_passwd);
	return true;
}

function imgSize(max_width)
{
   var lo_img     = window.event.srcElement;

   var li_width   = lo_img.width;
   var li_height  = lo_img.height;

    var temp = 0;
    if (!max_width) var max_width= 500;   // 이미지의 최대 크기

    if ( li_width > max_width ) {  // 이미지가 600보다 크다면 너비를 600으로 맞우고 비율에 맞춰 세로값을 변경한다.
       li_height = li_height/(li_width / max_width);
      lo_img.width = max_width;
      lo_img.height = li_height;
    }
}

function f_resize()
{
   // 이미지객체지정
   var lo_img     = window.event.srcElement;

   var li_width   = lo_img.width+30;
   var li_height  = lo_img.height+60;

   window.resizeTo(li_width,li_height);
}

function isImage(strImg)
{
    // 이미지
    var iStart = strImg.lastIndexOf(".") + 1;
    var strExt = strImg.substr(iStart).toLowerCase();
    if (strExt == "jpg" || strExt == "gif" || strExt == "png") return true;
    return false;
}

function isFlash(strImg)
{
    // 이미지
    var iStart = strImg.lastIndexOf(".") + 1;
    var strExt = strImg.substr(iStart).toLowerCase();
    if (strExt == "swf") return true;
    return false;
}

// 이미지를 업로드한 경우 이미지 미리보기 처리
function PreviewImage(imgLayerName, width)
{
	var objImg = window.event.srcElement;
	if (!isImage(objImg.value))
	{
		Error(objImg.title + "을(를) 등록해주세요.");
	}
	else
	{
		var strLayer = eval(imgLayerName)
		strLayer.innerHTML = "<img src='" + objImg.value + "' onLoad='imgSize(" + width + ")'><br><br>";
	}
}

// 이미지를 업로드한 경우 이미지를 미리보기 처리2
function PreviewImageDom(obj, width)
{
	var objImg = window.event.srcElement;
	var strLayer = obj.parentNode.getElementsByTagName("SPAN")[0];

	if (!isImage(objImg.value))
	{
		strLayer.innerHTML = "";
		Error(objImg.title + "을(를) 등록해주세요.");
	}
	else
	{
		strLayer.innerHTML = "<img src='" + objImg.value + "' onLoad='imgSize(" + width + ")'><br><br>";
	}
}

// img 오브젝트의 이미지를 바꾼다.
function setObjectImg(obj, img)
{
	obj.src = img;
}