/*============================================================
 * 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 newWindow(vWidth,	vHeight, vUrl, vOpt) {
	var	mdWindow = null;
	var	x	=	(screen.width	-	vWidth)/3;
	var	y	=	(screen.height - vHeight)/3;
	var	opt;
	if (vOpt ==	"" ||	vOpt ==	null)	vOpt = 0;
	opt	=			"width=" + vWidth 	+	",height=" + vHeight ;
	opt	=	opt	+	",scrollbars=" + vOpt	+	",,toolbar=yes,menubar=yes,location=yes,historybar=1,status=1";
	opt	=	opt	+	",resizable=1";
	opt	=	opt	+	",left=" + x + ",top=" + y;
	opt	=	opt	+	",channelmode=no,	titlebar=yes";
	var	mdWindow = window.open(vUrl, "", opt,	false);
}
 
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 openWindow2(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 , bgcolor=white";
	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 "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 "EMAIL_SS": //메일
      patten = /^[._a-zA-Z0-9-]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/;
      break;
	
	case "LOGINPASSWD" :		// 로그인시 패스워드 패턴 체크
	  patten = /([a-zA-Z0-9-]|[!,@,#,$,%,^,&,*,?,_,~]){6,40}$/; 
	  break;

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

function emailPatternCheck(userEmail)
{
	if(!userEmail.match(/^([._a-zA-Z0-9-])+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/))
	{
		alert("Please enter your E-mail.");
		return false;
	}
	if(userEmail.toLowerCase().match(/admin|guest/))
	{
		alert("'ADMIN' or 'GUEST' can not include a E-mail");
		return false;
	}

	return true;
}
// 패스워드 패턴 체크 항목
// 1. Email의 ID 사용금지
// 2. 영문자/숫자/(특수문자) 혼용, 최소 8자 이상
// 3. 동일문자 연속 3회 이상 사용금지 
// 4. 'admin' 및 'guest' 문자열 사용금지
function passwordPatternCheck(userPassWord,userEmail)
{
	if(userEmail.length > 0)
	{	
		var emailID = userEmail.substring(0,userEmail.indexOf('@'));
		if(userPassWord.indexOf(emailID) > -1 || userPassWord.indexOf(userEmail) > -1 )
		{
			alert("E-mail ID and Password can not use the same.");
			return false;
		}
	}

	if(userPassWord.length < 8 || userPassWord.length > 40) 
	{
		alert("The password is a combination of letters and numbers must be 8-40 characters.");
		return false;
	}
 
	if(!userPassWord.match(/([a-zA-Z,!,@,#,$,%,^,&,*,?,_,~].*[0-9])|[0-9].*[a-zA-Z,!,@,#,$,%,^,&,*,?,_,~]/))  
	{
		alert("The password is a combination of letters and numbers must be 8-40 characters.");
		return false;
	} 
	if(userPassWord.toLowerCase().match(/admin|guest/))
	{
		alert("Passwords ought to not be included 'ADMIN' or 'GUEST'");
		return false;
	}

	var chr_pass_0;
	var chr_pass_1;
	var chr_pass_2;

	for(var i=0; i < userPassWord.length - 2; i++) 
	{
		chr_pass_0 = userPassWord.charAt(i);
		chr_pass_1 = userPassWord.charAt(i+1);
		chr_pass_2 = userPassWord.charAt(i+2);
 		//동일문자 카운트
		if(chr_pass_0 == chr_pass_1) 
		{
			if(chr_pass_1 == chr_pass_2)
			{
				alert("Passwords should not be the same character on three-successive.");
				return false;
			}
		} 
	} 

	return true;
}

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;
}
