// 이메일 정규식 체크 리턴
function isEmail(str)
{	
	var reg=/^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z]+)+$/g;	
	if(str.match(reg)==null) {return false;}
}

// URL 정규식 체크 리턴
function isUrl(str)
{	
	var reg=/(http|https)\:\/\/[a-zA-z]+(\.[a-zA-Z0-9]+)*(\.[a-zA-Z0-9]+)/;
	if(str.match(reg)==null) {return false;}
}

//한글 전용 정규식 체크 리턴
function isKorean(str){
	var reg = /[가-힣]+$/;
	if(!str.match(reg)){
		return false;
	}
		return true;
}

// 전화번호 정규식 체크 리턴
function isPhone(str)
{	
	var reg=/^\d{2,3}-\d{3,4}-\d{4}$/g;	
	if(str.match(reg)==null) {return false;}
}

// 날짜 정규식 체크 리턴
function isDate(str)
{
	var reg=/^\d{4}-\d{2}-\d{2}$/
	if(str.match(reg)==null) {return false;}
}

// 해당 문자열이 공백인지 리턴
function isBlank(str)
{
	var arrStr=str.split(" ")
	if (str.length+1==arrStr.length)
		return true;
	return false;
}

//공백 확인
function isSpace(str) 
{
  var chkstr = str + "";
  var is_space = false ;
  for ( j = 0 ; j < chkstr.length  ; j++)
  {
    if( chkstr.substring( j , j+1 ) == " " )
      is_space = true ;
  }
  return ( is_space );
}

// 해당 문자열이 특정 길이를 넘어가는지 리턴
function isOverLen(str,len)
{
	if (getStrLen(str)>len)
		return true;
	else
		return false;
}

// 별명 정규식 체크 리턴
function isNickName(str)
{
	var reg = /^[가-힣0-9a-zA-Z]+$/;
	if(str.match(reg)==null) {return false;}
	return true;
}


// id 체크
function chkId(obj)
{
	var obj_id = obj.value;
	reg = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	for (i=0;i<obj_id.length;i++)
    {
		if(reg.indexOf(obj_id.substring(i,i+1))==-1) {
			alert("아이디는 영문,숫자 4~15자 로 이루어져야 합니다");
			obj.select();
			obj.focus();
			return true;
		}
	}
	if(obj_id.length < 4)
	{
		alert("아이디는 4자 이상이어야 합니다");
		obj.select();
		obj.focus();
		return true
	}
	if(obj_id.length > 15)
	{
		alert("아이디는 15자 이하이어야 합니다");
		obj.select();
		obj.focus();
		return true
	}
	return false;
}

// 닉네임 체크
function chkNickName(obj){
	if(!obj){return false;}
	if(!isNickName(obj.value))
	{
		alert("닉네임은 한글,영문,숫자로 이루어져야 합니다");	
		obj.select();
		obj.focus();
		return true;
	}
	if(isSpace(obj.value))
	{
		alert("닉네임은 한글,영문,숫자로 이루어져야 합니다");	
		obj.select();
		obj.focus();
		return true;
	}
	if(LenStr(obj.value)<4)
	{
		alert("닉네임는 4자 이상이어야 합니다");
		obj.select();
		obj.focus();
		return true;
	}
	if(LenStr(obj.value)>16)
	{
		alert("닉네임는 한글8자(영문16자) 이하이어야 합니다");
		obj.select();
		obj.focus();
		return true
	}
	return false;
}

// 사용자 정의 정규식 체크
function chkReg(obj,reg,str)
{
	if(!obj){return false;}
	if(obj.value.match(reg)==null)
	{
		if(str) {alert(str);}
		try{obj.focus();}catch(e){}
		return false;
	}
	return true;
}

// 해당 문자열이 공백인지
function chkBlank(obj,str)
{
	if(!obj){return false;}
	if(isBlank(obj.value))
	{
		if(str) {alert(str);}
		try{obj.focus();}catch(e){}		
		return false;
	}
	return true;
}

// 이름 검사
function chkName(obj){
	if(!obj){return false;}
	if(isBlank(obj.value) || obj.value.length < 2) { 
		alert("이름을 입력해 주세요");
		try{obj.focus();}catch(e){}		
		return false;
	}
	if(!isKorean(obj.value) || isSpace(obj.value)) {
		alert("이름을 정확히 입력해 주세요");
		try{obj.focus();}catch(e){}		
		return false;
	}
	return true;
}

// 숫자 검사
function chkNumber(obj,str)
{
	if(!obj){return false;}
	if(isBlank(obj.value) || isNaN(obj.value))
	{
		if(str) {alert(str);}
		obj.value="";
		try{obj.focus();}catch(e){}		
		return false;
	}
	return true;
}

// 비밀번호 검사 - 확인 비밀번호가 있을경우
function chkPassword(obj1,obj2)
{
	if(isBlank(obj1.value))
	{
		alert("비밀번호를 입력하세요");
		try{obj1.focus();}catch(e){}		
		return false;
	}
	if(obj1.value.length<6 || obj1.value.length>12){
		alert("비밀번호는 6자~12자 이내의 영문과 숫자를 입력해주세요");
		try{obj1.focus();}catch(e){}		
		return false;
	}
	if(isBlank(obj2.value))
	{
		alert("비밀번호 확인을 입력하세요");
		try{obj2.focus();}catch(e){}		
		return false;
	}
	if(obj1.value!=obj2.value)
	{
		alert('비밀번호와 비밀번호 확인이 서로 일치하지 않습니다.');
		return false;
	}
	return true;
}

// 이메일 검사
function chkEmail(obj,str,objFocus)
{
	if(!obj){return false;}
	if(!objFocus){objFocus=obj;}
	if(isEmail(obj.value)==false)
	{
		if(str) {alert(str);} else {alert("바른 이메일 주소를 넣어주세요");}
		try{objFocus.focus();}catch(e){}
		return false;
	}
	return true;
}

// URL 검사
function chkUrl(obj,str,objFocus)
{
	if(!obj){return false;}
	if(!objFocus){objFocus=obj;}
	if(isUrl(obj.value)==false)
	{
		if(str) {alert(str);} else {alert("바른 URL 주소를 넣어주세요");}
		try{objFocus.focus();}catch(e){}
		return false;
	}
	return true;
}

// 전화번호 검사
function chkPhone(obj,str)
{
	if(!obj){return false;}
	if(isPhone(obj.value)==false)
	{
		if(str) {alert(str);}
		obj.value="";
		try{obj.focus();}catch(e){}		
		return false;
	}
	return true;
}

// 날짜형식 체크
function chkDate(obj,str)
{
	if(!obj){return false;}
	if(isDate(obj.value)==false)
	{
		if(str) {alert(str);} else {alert("날짜 형식에 맞게 입력해 주세요\n\n예)2000-01-01");}
		obj.value="";
		try{obj.focus();}catch(e){}		
		return false;
	}
	return true;
}

// 옵션 버튼 체크 
function chkOption(obj,str)
{
	if(!obj){return false;}
	var chkValue;
	for(var i=0;i<obj.length;i++)
	{
		if(!obj[i]){continue;}
		if(obj[i].checked) {chkValue=obj[i].value;break;}
	}
	if(!chkValue)
	{
		if(str) {alert(str);}
		return false;
	}
	return true;
}

// 주민등록번호 검사
function chkJumin(obj1,obj2)
{
	var chksum=0
	var sex=obj2.value.substring(0,1)

	// 주민번호 앞자리 검사
	if (obj1.value.length!=6)
	{
		alert("주민등록번호 앞자리 6자리를 제대로 입력해주세요.");
		try{obj1.focus();}catch(e){}		
		return false;
	}
	
	// 주민번호 뒷자리 검사
	if (obj2.value.length!=7)
	{
		alert("주민등록번호 뒷자리 7자리를 제대로 입력해주세요.");
		try{obj2.focus();}catch(e){}
		return false;
	}
	
	// 주민 번호 규칙 검사
	for (var i=0;i<=5;i++)
	{
		chksum+=((i%8+2)*parseInt(obj1.value.substring(i,i+1)))
	}
	for (var i=6;i<=11;i++) 
	{
		chksum+=((i%8+2)*parseInt(obj2.value.substring(i-6,i-5)))
	}
	chksum=11-(chksum%11) 
	chksum=chksum%10
	if (chksum!=obj2.value.substring(6,7))
	{ 
	    alert ("잘못된 주민등록번호입니다."); 
		try{obj1.focus();}catch(e){}	    
	    return false; 
	}
	return true;
}

// 이미지 마우스 오버시 변환
function chgImg(obj)
{
	var tmp=obj.src;
	var ext=tmp.substr(tmp.lastIndexOf(".")+1,3)
	if(tmp.indexOf("_over."+ext)==-1)
		obj.src=tmp.replace("."+ext,"_over."+ext)
	else
		obj.src=tmp.replace("_over."+ext,"."+ext)
}

// 문자열 길이 리턴
function getStrLen(str)
{
	var nbytes=0;
	for (i=0; i<str.length; i++)
	{
		var ch=str.charAt(i);
		if(escape(ch).length > 4) {nbytes += 1;}
		else if (ch=='\n')
			{if (str.charAt(i-1)!='\r') {nbytes += 1;}}
		else if (ch=='<' || ch=='>') {nbytes += 4;}
		else {nbytes += 1;}
	}
	return nbytes;
}


/* 요약 내용 글자수 체크 */
function chkRemain(maxLen,obj,str)
{
	if(!obj) {return false;}
	var remainbyte = document.getElementById(str);
	var length=getStrLen(obj.value);
	remainbyte.innerHTML=length;

	if (length>maxLen)
	{
		alert("최대 " + maxLen + "자이므로 초과된 글자수는 자동으로 삭제됩니다.");
		obj.value=obj.value.replace(/\r\n$/, "");
		obj.value=cutStr(obj.value,maxLen-1);
		chkRemain(maxLen,obj,str);
	}
}

function cutStr(value,maxLen)
{
	var nbytes=0;
	var result="";
	var length=value.length;

	for (i=0;i<length;i++)
	{
		var ch=value.charAt(i);
		if(escape(ch).length > 4) {nbytes += 1;} // 한글입력시
		else if(escape(ch).length == 1) {nbytes += 1;} // 영문입력시
		else if (ch=='\n') {if (value.charAt(i-1) != '\r') {nbytes+=1;}}
		else if (ch=='<' || ch=='>') {nbytes+=4;}
		else {nbytes+=1;}
		if (nbytes>maxLen+1) {break;}
		result+=ch;
	}
	return result;
}

function LenStr(value){
	var nbytes=0;
	var length=value.length;

	for (i=0;i<length;i++)
	{
		var ch=value.charAt(i);
		if(escape(ch).length > 4) {nbytes += 2;} // 한글입력시
		else if(escape(ch).length == 1) {nbytes += 1;} // 영문입력시
		else {nbytes+=1;}
	}
	return nbytes;
}

// 윈도우 오픈
function openWindowCenter(url,name,width,height,scrollbars) {
	var posLt = (screen.availWidth-width)/2;
	var posTp = (screen.availHeight-height)/2;
	var pop = window.open(url,name,"top="+posTp+",left="+posLt+",width="+width+",height="+height+",scrollbars="+scrollbars);
	if(pop) {pop.focus();}
}

function chkTime(obj,time) {   //시간확인
	if(!obj){return false;}
	if(time=="H") {
		if(chkNumber(obj)){
			if(!(obj.value>=0 && obj.value<24 && obj.value.length==2)) {
				alert("00~23시 사이의 시각을 입력해주세요");
				try{obj.focus();}catch(e){}
				return false;
			}
	    } else {
			alert("00~23시 사이의 시각을 입력해주세요");
			try{obj.focus();}catch(e){}
			return false;
		}
	} else if(time=="M") {
		if(chkNumber(obj)){
			if(!(obj.value>=0 && obj.value<60 && obj.value.length==2)) {
				alert("00~59분 사이의 시각을 입력해주세요");
				try{obj.focus();}catch(e){}
				return false;
			}
		} else {
			alert("00~59분 사이의 시각을 입력해주세요");
			try{obj.focus();}catch(e){}
			return false;
		}
	}
	return true;
}

function checkAge(jumin1,jumin2){
	var today = new Date();
	var year = today.getFullYear();

	var bornYear	= jumin1.substring(0,2);
	var bornMonth	= parseInt(jumin1.substring(2,4), 10);
	var bornDay		= parseInt(jumin1.substring(4,6), 10);
	var sex			= jumin2.substring(0,1);
	
	if (sex=="1" || sex=="2")
		bornYear = "19" + bornYear;
	else
		bornYear = "20" + bornYear;
	
	var bornDate = new Date(year,bornMonth-1,bornDay);
	var age = year - parseInt(bornYear,10);
	age = (today.getTime()-bornDate.getTime()<0 ) ? age-1 : age;
	
	return age;
}

function moveFocus(){
	var frm = document.getElementById("frm");
	if(!frm) return false;
	if(frm.strJumin1.value.length>5) frm.strJumin2.focus();
}

function upFile(language) {
    var frmFile2=document.getElementById("frmFile2");
	var objFile=frmFile2.File;
	if(objFile.value=="") {alert("등록할 파일을 선택하십시오.");return false}
	
	var startPos = objFile.value.lastIndexOf("\\");
	startPos++;
	var endPos = objFile.value.lastIndexOf(".");
	checkFileName(objFile.value.substring(startPos, endPos),language);
}

// 영어와 숫자로 된 파일만 가능하게 하는 함수
function checkFileName(fileName,language) {
    var tmp = 0;
    for(var i = 0; i < fileName.length; i++)
    {
        tmp = fileName.charCodeAt(i)
        if( (tmp >= 65 && tmp <= 90) || (tmp >= 97 && tmp <= 122) || (tmp >= 48 && tmp <= 57)) {
            // 대문자 알파벳, 소문자 알파벳, 숫자
        }
        else {
            if (language == "english")
                alert("Please put the name of attached file in English or Number");
            else if (language == "chinese")
                alert("请用英文或者数字编辑申请选秀的附件文件名");
            else if (language == "japanese")
                alert("添付ファイル名は英語または数字のみ可能です");
            
            return false;
        }
    }
    uploadSingleFile();
}