/*============================================================
 * Spec		 : 팝업윈도우	함수(툴바없이	화면 가운데	띄우기)
 * Parameter : vWidth	>> 윈도우너비
 * Parameter : vHeight >>	윈도우높이
 * Parameter : vUrl	>> 링크	주소
 * Parameter : vOpt	>> 스크롤	유무(0:없음, 1:있음, 기본값은	0)
 * Return	 : void
 * example	 : openWindow(300, 500,	'http://www.opop.com/popup/',0);
 ============================================================*/
 
function openWindow(vWidth,	vHeight, vUrl, vOpt) {
	var	mdWindow = null;
	var	x	=	(screen.width	-	vWidth)/2;
	var	y	=	(screen.height - vHeight)/2;
	var	opt;
	if (vOpt ==	"" ||	vOpt ==	null)	vOpt = 0;
	opt	=			"width=" + vWidth	+	",height=" + vHeight;
	opt	=	opt	+	",scrollbars=" + vOpt	+	",toolbar=0,menubars=0,locationbar=0,historybar=0,statusbar=0";
	opt	=	opt	+	",outerWidth=" + vWidth	+	",outerHeight="	+	vHeight	+	",resizable=0";
	opt	=	opt	+	",left=" + x + ",top=" + y;
	opt	=	opt	+	",channelmode=no,	titlebar=no";
	var	mdWindow = window.open(vUrl, "", opt,	false);
}

function openNameWindow(vWidth,	vHeight, vUrl, vName,	vOpt)	{//인스턴스이름	있는 창	열기.
	var	mdWindow = null;
	var	x	=	(screen.width	-	vWidth)/2;
	var	y	=	(screen.height - vHeight)/2;
	var	opt;
	if (vOpt ==	"" ||	vOpt ==	null)	vOpt = 0;
	opt	=			"width=" + vWidth	+	",height=" + vHeight;
	opt	=	opt	+	",scrollbars=" + vOpt	+	",toolbar=0,menubars=0,locationbar=0,historybar=0,statusbar=0";
	opt	=	opt	+	",outerWidth=" + vWidth	+	",outerHeight="	+	vHeight	+	",resizable=0";
	opt	=	opt	+	",left=" + x + ",top=" + y;
	opt	=	opt	+	",channelmode=no,	titlebar=no";
	var	mdWindow = window.open(vUrl, vName,	opt, false);
	if(!mdWindow){
		alert("Please disable popup blocking!");
		return false;
	}
	mdWindow.focus();
}

function chkPattern(str,type)	//형식 체크
{
  switch(type)
  {
    case "NUM": //숫자만
      patten = /^[0-9]+$/;
      break;
    case "PHONE": //전화번호	형식 : 033-1234-5678
      patten = /^[0-9]{2,4}-[0-9]{3,4}-[0-9]{4}$/;
      break;
    case "EMAIL": //메일
      patten = /^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/;
      break;

    case "DOMAIN": //영자 숫자와	.	다음도 영자
      patten = /^[.a-zA-Z0-9-]+.[a-zA-Z]+$/;
      break;

    case "ENG": //영자만
      patten = /^[a-zA-Z]+$/;
      break;

    case "ENGNUM": //영자와	숫자
      patten = /^[a-zA-Z0-9]+$/;
      break;

    case "HOST": //영자	와 '-'
      patten = /^[a-zA-Z-]+$/;
      break;

    case "HANGUL": //한글인지
      patten = /[가-힣]/;
      break;

    case "HANGULENG	": //한글영어
      patten = /[가-힣a-zA-Z]/;
      break;

    case "HANGULONLY": //한글만
      patten = /^[가-힣]*$/;
      break;

    case "ID": //첫글자는	영자 그뒤엔	영어숫자 4이상 15자리	이하
      patten = /^[a-zA-Z]{1}[a-zA-Z0-9_-]{4,15}$/;
      break;

    case "DATE": //	형식 : 2002-08-15
      patten = /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
      break;
      
    case "PASSWD": // 영문과 숫자와 - 혼용 6자리 이상
      patten = /[a-zA-Z0-9-]{6,40}$/;
      break;

    default :
      return false;
  }
	return patten.test(str);
}

function isValidType(field,type,msg) //	chkPatten로	형식체크 후	메세지 출력
{
	if(!chkPattern(field.value,type))
	{
		if(msg !=	"")	alert(msg);
		field.focus();
		return false;
	}
	return true;

}

function CheckValid(String,	space) //	유효성 체크
{
	 var retvalue	=	false;
	 for (var	i=0; i<String.length;	i++)
	 {		//String이 0(""	이나 null)이면 무조건	false
			if (space	== true)
			{
				 if	(String.charAt(i)	== ' ')
				 {			//String이 0이 아닐때	space가	있어야만 true(valid)
						retvalue = true;
						break;
				 }
			}	else {
				 if	(String.charAt(i)	!= ' ')
				 {			//string이 0이 아닐때	space가	아닌 글자가	있어야만 true(valid)
						retvalue = true;
						break;
				 }
			}
	 }
	 return	retvalue;
}

// 항목이	비어있는지 체크
function isEmpty(field,	error_msg)
{
	// error_msg가 ""이면	alert와	focusing을 하지	않는다
	if(error_msg ==	"")	{
		if(!CheckValid(field.value,	false))	{
			return true;
		} else {
			return false;
		}
	} else {
		if(!CheckValid(field.value,	false))	{
			alert(error_msg);
			field.focus()	;
			return true;
		} else {
			return false;
		}
	}
}

// 항목이	비어있는지 체크
function isNotSelect(field,	error_msg)
{
  var value = field.value;
	// error_msg가 ""이면	alert와	focusing을 하지	않는다
	if(error_msg ==	"")	{
		if(!CheckValid(value,	false) || value == "00")		{
			return true;
		}	else {
			return false;
		}
	}	else {
		if(!CheckValid(value,	false) || value == "00")	{
			alert(error_msg);
			field.focus()	;
			return true;
		}	else {
			return false;
		}
	}
}

// 라디오	버튼이 체크되어있는지	체크
function isNotCheckedRadio(field,	error_msg) {
	if ( field ==	null ) {
		alert(error_msg);
		return true;
	}

	if ( field.length	== null	)	{
		if ( field.checked ==	true ) {
			return false;
		}	else {
			alert(error_msg);
			return true;
		}
	}

	for(i	=	0; i < field.length; i++)	{
		if(field[i].checked	== true) {
			return false;
		}
	}
	alert(error_msg);
	return true;
}


function onlynum() {//숫자만 눌리게	하기 , 방향키	+	Delele + BackSpace
	var	iCode	=	event.keyCode;
	if(!(	((iCode	>= 48) &&	(iCode <=	57)) ||	((iCode	>= 37) &&	(iCode <=	40)) ||	((iCode	>= 96) &&	(iCode <=	105))	|| (iCode	== 8 ) ||	(iCode ==	46 )|| (iCode	== 9 ))	)	event.returnValue	=	false;
}

//*****************************************************************************
// Description : 입력값의 바이트 길이를 리턴
// Parameter: input
// Return: byteLength
// Usage: if (getByteLength(title) > 100) {  alert("제목은 영문 100자 이상 입력할 수 없습니다.");   }
//*****************************************************************************
function getByteLength(strValue)
{
    var byteLength = 0;

    for (inx = 0; inx < strValue.length; inx++)
	{
        var oneChar = escape(strValue.charAt(inx));

        if ( oneChar.length == 1 )
		{
            byteLength ++;
        }
		else if (oneChar.indexOf("%u") != -1)
		{
            byteLength += 2;
        }
		else if (oneChar.indexOf("%") != -1)
		{
            byteLength += oneChar.length/3;
        }
    }
    return byteLength;
}