﻿//trim 함수
function gfnTrim(p_obj) {
    var re = /^\s*|\s*$/gi;
    var rtnVal = p_obj.value.replace(re, "");
    return rtnVal;
}

function gfnTrimStr(p_str) {
    var re = /^\s*|\s*$/gi;
    var rtnVal = p_str.replace(re, "");
    return rtnVal;
}

//text 객체의 빈 값을 체크한다
function gfnChkTxtValue(p_obj,p_msg){
    var obj = p_obj;
    if(gfnTrim(obj) == ''){
        alert(p_msg);
        obj.focus();
        return false;
    }
    return true;
}


//Radio Button의 선택된 값 가져오기
function gfnGetValueRdoObj(p_obj){
    if(p_obj.length){
        var len = p_obj.length;
        for (var i=0; i<len; i++){
            if ( p_obj[i].checked == true ){return p_obj[i].value;}
        }
    }
    else{
        if( p_obj.checked == true){return p_obj.value;}
    }
    return false;
}

//Radio Button 값 셋팅
function gfnSetValueRdoObj(p_obj,p_value){
    var len = p_obj.length;
    for (var i=0; i<len; i++){
        if ( p_obj[i].value == p_value ){p_obj[i].checked=true;return;}
    }
    return false;
}

//selectbox value 셋팅
function gfnSelectByValue( p_obj, p_value ){
	var obj = p_obj;
	for(var n=0; n<obj.length; n++){
		if(obj.options[n].value == p_value){
			obj.options[n].selected = true;
			break;
		}
	}
}

function gfnSetComma(obj) {
    var strValue = obj.value.replace(/,|\s+/g,'');
    obj.value= gfnMakeComma(strValue);
}

function gfnMakeComma(strValue){
    if(isNaN(strValue)) {
        alert(strValue.concat('=>숫자만 입력 가능합니다.'));
        return false;
    }
    var strBeforeValue = (strValue.indexOf('.') != -1)? strValue.substring(0,strValue.indexOf('.')) :strValue ;
    var strAfterValue  = (strValue.indexOf('.') != -1)? strValue.substr(strValue.indexOf('.'),2+1) : '' ;

    var intLast =  strBeforeValue.length-1;
    var arrValue = new Array;
    var strComma = '';

    for(var i=intLast,j=0; i >= 0; i--,j++) { 
        if( j !=0 && j%3 == 0)   strComma = ',';
        else    strComma = '';
        arrValue[arrValue.length] = strBeforeValue.charAt(i) + strComma  ;
    }
    var rtn = arrValue.reverse().join('') +  strAfterValue;
    return rtn;
}

function gfnRemoveComma(p_val){
    var re = /,/gi;
    return p_val.toString().replace(re,"");
}

function IsNature(str) {
	if(str.length == 0) return false;
	if(str.lastIndexOf("-") > 0) return false;

    var periodCount = 0;
	for(i=0; i<str.length; i++) {
		if(STRING_DEF_NATURE.indexOf(str.charAt(i)) < 0) return false;
        if(str.charAt(i) == '.') periodCount++;
	}
	if(periodCount > 1) return false;
	return true;
}

function gfnChkNature() {
	var tChar = String.fromCharCode(event.keyCode)
	return IsNature(tChar);
}

//Check Box의 선택된 값 가져오기
function gfnGetValueChkTypeObj(p_obj){
	var chkCnt;
	var rtnVal = '';
	if(p_obj){
		if(p_obj.length){
			chkCnt = p_obj.length;
			for (i=0; i<chkCnt; i++)
				if (p_obj[i].checked){rtnVal = p_obj[i].value +"^"+ rtnVal ;}
		}
		else{ if (p_obj.checked) rtnVal = p_obj.value +"^" }
	}
	return rtnVal;
}

function gfnGetValueChkTypeObj2(p_obj){
	var chkCnt;
	var rtnVal = '';
	if(p_obj){
		if(p_obj.length){
			chkCnt = p_obj.length;
			for (i=0; i<chkCnt; i++)
				if (p_obj[i].checked){rtnVal = p_obj[i].value +","+ rtnVal ;}
		}
		else{ if (p_obj.checked) rtnVal = p_obj.value +"," }
	}
	return rtnVal;
}

function gfnChkLen(pLen, pObj, pSpn){
    var otxt = document.getElementById(pObj);
    var iCnt = 0;
    var sTmp1, sTmp2;
    for(i = 0;i < otxt.value.length;i++){
        sTmp1 = otxt.value.charAt(i);
        if(escape(sTmp1).length > 4) iCnt += 2;
        else iCnt += 1 ;
    }
    if (iCnt > pLen){
        alert("최대 " + pLen + "byte까지 입력할 수 있습니다. 초과된 글자는 자동으로 삭제됩니다.");
        iCnt = 0;
        sTmp2 = "";
        for(i = 0; i < otxt.value.length; i++){
	        sTmp1 = otxt.value.charAt(i);
	        if(escape(sTmp1).length > 4) iCnt += 2;
	        else iCnt += 1 ;
	        if (iCnt > pLen){
		        if(escape(sTmp1).length > 4) iCnt -= 2;
		        else iCnt -= 1 ;
		        break;
	        }
	        else sTmp2 += sTmp1;
        }
        otxt.value = sTmp2;
    }
    document.getElementById(pSpn).innerHTML = iCnt;
}

function bluring(){
    if(event.srcElement.tagName=="A"||event.srcElement.tagName=="IMG") {
        document.body.focus();
    }
}

// 유효한 날짜인지 점검하는 함수
function CheckDate(pMonth, pDay, pYear){
	var ofd = new Date;
	ofd.setDate(1);

	pMonth = "" + pMonth;
	pDay = "" + pDay;
	pYear = "" + pYear;
	var Year = parseInt(rmleadzero(pYear));
	var Month = rmleadzero(pMonth);
	var Day = rmleadzero(pDay);

	if (isNaN(Year)) Year = 2000;
	if (Year <= 100) Year = Year + 1900;

	ofd.setYear(parseInt(Year));
	ofd.setMonth(parseInt(Month)-1);
	ofd.setDate(parseInt(Day));

	var vy = ofd.getYear();
	var vm = ofd.getMonth()+1;
	var vd = ofd.getDate();
	
	if (vy <= 200) vy = vy + 1900;

	fdate = Year+"/"+Month+"/"+Day;
	vdate = vy+"/"+vm+"/"+vd;
	if (fdate != vdate){
		return false;
	}
	return true;
}


// 새창띄우기 함수
function openWindow(theURL,winName,features) { 
   window.open(theURL,winName,features);
}

// 검색어 체크 함수
function SearchIt() { 
	if (document.search.sh_keyword.value) {
		var ext = document.search.sh_keyword.value.indexOf("'");
		if (ext != "-1") {
			alert("검색어에 [']가 포함되면 않됩니다.");
			document.search.sh_keyword.focus();
			return;
		}  
	}
	document.search.submit();  
}




// 주민번호 확인 함수 1
function CheckJumin1(sid){
	var sid,sum,j,i,check       
	sum = 0 
	for(i=0;i<8;i++){       
		j = (i+2);      
		sum += parseInt(sid.substr(i,1)) * j;       
	}
	for(i=8;i<12;i++){
		j=(i+3)%9       
		sum += parseInt(sid.substr(i,1)) * j
	}
	check = sum % 11
	
	check = 11 - check
	if (check > 9) {
		check = check % 10
	}
	
	if (check == sid.substr(12)){
		if((parseInt(sid.substr(2,2))<13) && (parseInt(sid.substr(4,2))<32)){
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

// 주민번호 확인 함수 2
function CheckJumin2(obj1, obj2) {
	var li_lastid,li_mod,li_minus,li_last;
	var value0,value1,value2,value3,value4,value5,value6;
	var value7,value8,value9,value10,value11,value12;
	var str1 = obj1.value ;
	var str2 = obj2.value ;
	
	if (IsInteger(str1) && IsInteger(str2)) {
		li_lastid = parseFloat(str2.substring(6,7));
		value0  = parseFloat(str1.substring(0,1)) * 2;
		value1  = parseFloat(str1.substring(1,2)) * 3;
		value2  = parseFloat(str1.substring(2,3)) * 4;
		value3  = parseFloat(str1.substring(3,4)) * 5;
		value4  = parseFloat(str1.substring(4,5)) * 6;
		value5  = parseFloat(str1.substring(5,6)) * 7;
		value6  = parseFloat(str2.substring(0,1)) * 8;
		value7  = parseFloat(str2.substring(1,2)) * 9;
		value8  = parseFloat(str2.substring(2,3)) * 2;
		value9  = parseFloat(str2.substring(3,4)) * 3;
		value10 = parseFloat(str2.substring(4,5)) * 4;
		value11 = parseFloat(str2.substring(5,6)) * 5;
		value12 = value0 + value1 + value2 + value3 + value4 + value5 + value6 + value7 + value8 + value9 + value10 + value11;
		
		li_mod = value12 % 11;
		li_minus = 11 - li_mod;
		li_last = li_minus % 10;
		if (li_last != li_lastid)
			return false;
		else
			return true;
	} else
		return false;
}

// 주민번호 체크 로직
function check_ssn(resno)
{
    var e_msg = "올바르지 않은 주민번호입니다";
    
	var fmt = /^\d{13}$/;
	if ( !fmt.test(resno) )
	{
		alert( e_msg );
		return false;
	}

	buf = new Array(13);
	for (i = 0; i < 13; i++) 
	{
		buf[i] = parseInt(resno.charAt(i));
	}


	multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
	for (i = 0, sum = 0; i < 12; i++) 
	{
		sum += (buf[i] *= multipliers[i]);
	}

	if((11 - (sum % 11)) % 10 != buf[12]) 
	{
		alert( e_msg );
		return false;
	}

	return true;
}

//숫자체크
function checkNumber(str) { 
    var flag=true; 
    if (str.length > 0) { 
        for (i = 0; i < str.length; i++) {  
            if (str.charAt(i) < '0' || str.charAt(i) > '9') { 
                flag=false; 
            } 
        } 
    } 
    return flag; 
} 

// str은 모두 소문자여야하고 첫글자는 영문이어야 한다. 영문과 0~9까지 허용한다. 
function CheckChar(str) { 
    strarr = new Array(str.length); 
    var flag = true; 
    for (i=0; i<str.length; i++) { 
        strarr[i] = str.charAt(i) 
        if (i==0) { 
            if (!((strarr[i]>='a')&&(strarr[i]<='z'))) { 
                flag = false; 
            } 
        } else { 
            if (!((strarr[i]>='a')&&(strarr[i]<='z')||(strarr[i]>='0')&&(strarr[i]<='9'))) { 
                flag = false; 
            } 
        } 
    } 
    if (flag) { 
        return true; 
    } else { 
        return false; 
    } 
} 

// str은 모두 영문소문자여야 한다. 
function CheckChar2(str) { 
    strarr = new Array(str.length); 
    var flag = true; 
    for (i=0; i<str.length; i++) { 
        strarr[i] = str.charAt(i) 
        if (!((strarr[i]>='a')&&(strarr[i]<='z'))) { 
            flag = false; 
        } 
    } 
    if (flag) { 
        return true; 
    } else { 
        return false; 
    } 
} 

// 이메일 체크 
function CheckMail(strMail) {
   /** 체크사항 
     - @가 2개이상일 경우 
     - .이 붙어서 나오는 경우 
     -  @.나  .@이 존재하는 경우 
     - 맨처음이.인 경우 
     - @이전에 하나이상의 문자가 있어야 함 
     - @가 하나있어야 함 
     - Domain명에 .이 하나 이상 있어야 함 
     - Domain명의 마지막 문자는 영문자 2~4개이어야 함 **/ 

    var check1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;  

    var check2 = /^[a-zA-Z0-9\-\.\_]+\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4})$/; 
     
    if ( !check1.test(strMail) && check2.test(strMail) ) { 
        return true; 
    } else { 
        return false; 
    } 
} 

// str은 한글이어야만 한다. 
function CheckHangul(str) { 
    strarr = new Array(str.length); 
    schar = new Array('/','.','>','<',',','?','}','{',' ','\\','|','(',')','+','='); 
    flag = true; 
    for (i=0; i<str.length; i++) { 
        for (j=0; j<schar.length; j++) { 
            if (schar[j] ==str.charAt(i)) { 
                flag = false; 
            } 
        } 
        strarr[i] = str.charAt(i) 
        if ((strarr[i] >=0) && (strarr[i] <=9)) { 
            flag = false; 
        } else if ((strarr[i] >='a') && (strarr[i] <='z')) { 
            flag = false; 
        } else if ((strarr[i] >='A') && (strarr[i] <='Z')) { 
            flag = false; 
        } else if ((escape(strarr[i]) > '%60') && (escape(strarr[i]) <'%80') ) { 
            flag = false; 
        } 
    } 
    if (flag) { 
        return true; 
    } else { 
        return false; 
    } 
     
} 



function TagChek(title, content)
{
        if(f.html.value != 1) { 
                 var exceptTag = "form,meta,script"; //사용불가능 태그 정의
                 var s  = ",";
                 var ArrayOfTag = exceptTag.split(s);
         
                for (i=0;i<ArrayOfTag.length;i++) {
                        
                        Tag = '<' + ArrayOfTag[i];
                        
                                                
                        content =content.replace(' ',''); 
                         title   =title.replace(' ',''); 
                        
                        chk1 =  title.search(Tag); //title 에 위정의한 태그값이 없으면 -1 리턴..
                        chk2 =  content.search(Tag);                
                                                
                        if(chk1 != -1)  { 
                                alert("해당 tag (form,iframe,meta,script)는 사용하실 수 없습니다."); 
                                f.title.focus();return;
                        }
                        
                        if(chk2 != -1)  { 
                                alert("해당 tag (form,iframe,meta,script)는 사용하실 수 없습니다."); 
                                f.content.focus();return;
                        }
                                                                        
                }
        }
} 
        




