/*
function trim(str)  
{ 
    var count = str.length; 
    var len = count;                 
    var st = 0; 
    while ((st < len) && (str.charAt(st) <= ' ')) { 
    st++; } 
    while ((st < len) && (str.charAt(len - 1) <= ' ')) { 
    len--; }                 
    return ((st > 0) || (len < count)) ? str.substring(st, len) : str ;   
}
//숫자,알파벳
function ChkAlNum(strValue) 
{
  for(var i=0; i<strValue.length;i ++) 
  {
    var strCh = strValue.charAt(i).toUpperCase();
    if(strCh >="A" && strCh <="Z") continue;
    if(strCh >="0" && strCh <="9") continue;
    if(strCh  =" ") continue;
    return false;
  }
}

function id_check(FStr , IDLength) {
var str = "0123456789abcdefghijklmnopqrstuvwxyz";
    for (i=0;i<FStr.length;i++) {
        if(FStr.value != "" && str.indexOf(FStr.charAt(i))< 0)   {
        alert("영문자,소문자,숫자 조합만 가능합니다.");
        return false;
        } else if(FStr.length < IDLength) {
        alert("아이디는 " + IDLength + "자 이상 입력하셔야 합니다.");
        return false;
        }
    }
    return true;
}
*/
/**
 JavaScript : Number_format
**/
function number_format(str)
{
    str = ""+str+"";
    var retValue = "";
    for(i=0; i<str.length; i++)
    {
        if(i > 0 && (i%3)==0) 
        {
            retValue = str.charAt(str.length - i -1) + "," + retValue;
        } 
        else
        {
            retValue = str.charAt(str.length - i -1) + retValue;
        }
    }
    return retValue;
}

function price_format(arg)
{
    var rightchar=arg.value;
    rightchar= rightchar.replace(/,/g,"");

    var moneychar= "";
    for(index=rightchar.length-1;index>=0;index--)
    {
        splitchar=rightchar.charAt(index);
        moneychar=splitchar+moneychar;
        if(index%3==rightchar.length%3&&index!=0)
        {
            if(parseInt(rightchar)> 0|| (parseInt(rightchar)< 0&& index>= 2))
            {
                moneychar=','+moneychar;
            }
        }
    }
    arg.value= moneychar;
}

function ZipCodeOpenWindow(zurl,FormName, AddressName, ZipCName)    {
 
    var Wwidth = 500 ;
    var Wheight = 420 ;
    var scrollbar = true ;
    var url = zurl+"?formname=" + FormName + "&inputname=" + AddressName + "&zipname=" + ZipCName ; 
    winLeftAlign = (screen.width - Wwidth) / 2; 
    winTopAlign = (screen.height - Wheight) / 2; 
    window.open(url , "zzipcode" ,"width=" +Wwidth + ",height=" + Wheight + " ,top="+winTopAlign+", left="+winLeftAlign+",scrollbars=" + scrollbar + ",toolbar=no,location=no,directories=no,status=no,menubar=no");
}





//왼쪽 메뉴 열고 닫기
function closeMenu()
{
     document.getElementById('LEFT_MENU_TD').style.width = 0;
     document.getElementById('LEFT_MENU_DIV_FULL').style.display = "none";
     document.getElementById('LEFT_MENU_DIV_SMALL').style.display = "inline";
     document.getElementById('RIGHT_MENU_TD').style.width=950;
}

function openMenu()
{
     document.getElementById('LEFT_MENU_TD').style.width = 150;
     document.getElementById('LEFT_MENU_DIV_FULL').style.display = "inline";
     document.getElementById('LEFT_MENU_DIV_SMALL').style.display = "none";
     document.getElementById('RIGHT_MENU_TD').style.width=800;
}

//컨택스트 메뉴
//가변 변수 받기 반드시 변수는 4개 이상이어야 한다.
function showContext() 
{
    al = arguments.length;
    if(al < 3)
    {
        alert("인자의 갯수가 4개 이상이어야 합니다. --showContext()");
        return;
    }
    cid = arguments[0];
    param_title = arguments[1];

    for(i=2;i<al;i++)
    {
        eval(arguments[i]); //저장할 변수명을 변수로 변환
    }

    obj =  document.getElementById(cid);
    title_obj = document.getElementById(cid+"_TITLE");
    title_obj.innerHTML = param_title;
    //alert(param);
    //rparam = param_value; //저장할 변수에 저장
    //READER_CODE = param_value;
    e = window.event;
    obj.style.left=document.body.scrollLeft+e.clientX-10;
    obj.style.top=document.body.scrollTop+e.clientY+0;
    obj.style.display="inline";
        
}
function hideContext(cid) 
{
    document.getElementById(cid).style.display="none";
}
//var ajax_width=0;
var ajax_top = 0;
var ajax_left = 0;
function on_ajax_key_press(frm, val, turl , t, l)
{
    //ajax_width = (t == undefined) ? 0 : w;
    ajax_top = (t == undefined) ? 0 : t;
    ajax_left = (l == undefined) ? 0 : l;
    
    //입력키를 제외한 글자는 패스한다
    /**
    * 37~40 : 방향키
    * 112 ~ 123 : F1~F12, 
    * 18   :alt
    * 17   : ctl 
    * 116 : F5
    * 27 : esc
    */
    //alert(event.keyCode);
    //MS 아니면 작동 안되게 한다.
    frm.autocomplete="off"  ;
  if (navigator.appVersion.indexOf("MSIE") == -1)
  {
      return;
  }
    switch(event.keyCode)
    {
        case 37:    
        case 39:
        case 112:
        case 113:
        case 114:
        case 115:
        case 116:
        case 117:
        case 118:
        case 119:
        case 120:
        case 121:
        case 122:
        case 123:
        case 18:
        case 17:
        case 116:
        case 27:
            return;
        case 38:    //up
            //clearSgt();
            hideSgt();
            return;
            break;
        case 40:    //down
            if(frm.value.length == 0) return;
            showSgt();
            focusSgt();
            return;
            break;
        case 8: //back space
            if(frm.value.length == 0) hideSgt();
            break
        case 229:   //마우스를 다른곳에 찍으면 발생 뭘까?
            hideSgt();
            return;
            break;
            
    }
    if(val == "" || val == " ") return;
    //send("../js/saerae.php","&n="+encodeURIComponent(val))
    send(turl,"&n="+val)
}

/****************************************************
    기능 : 스트링의 좌우 Space 를 없앤다.
****************************************************/
function trim(str) {
    str = str.replace(/^\s*/, '').replace(/\s*$/, '');
    return str;
}

/****************************************************
    기능 : 해당 Object value의  좌우 Space를 없앤다.
****************************************************/
function trimVal(obj) {
    str = obj.value;
    str = str.replace(/^\s*/, '').replace(/\s*$/, '');
    obj.value = str;
}

/****************************************************
//  한글과 영문 바이트수 계산
****************************************************/
function byeCheck(str, total) {
    var len, totalLen=0;
    len = str.length;
    for(i=0; i < len; i++) {
        strChar = str.charAt(i);
        if (totalLen > total){ break;}
        if(escape(strChar).length > 4)
            totalLen += 2;
        else
            totalLen++;
    }
    //alert(totalLen);

    if (totalLen > total)   return i-1;
    else                    return -1;
}

/****************************************************
// Space 값만 있는지 체크한다.
****************************************************/
function spaceCheck(str) {
    len = str.length;
    for (i=0; i <len; i++) {
        strChar = str.charAt(i);

    }
}
/****************************************************
// 한글이 하나라도 있으면 true 를 return 한다.
****************************************************/
function isHangul(str)
{
    for (var i = 0; i < str.length; i++) {
        ret = str.charCodeAt(i);
        if (!(ret > 31 && ret < 127)) {
            return true;
        }
    }
    return false;
}
/****************************************************
// 특수 키값이 있는지 체크
    /(\/|\$|\^|\*|\(|\)|\+|\.|\?|\\|\{|\}|\||\[|\]|-|:)/g
****************************************************/
function notCharCheck(obj)
{
    var str = obj.value;
        alert(str);
    sFilter="/(\/|\$|\^|\*|\(|\)|\+|\.|\?|\\|\{|\}|\||\[|\]|-|:)/g";
    for (var i = 0; i < str.length; i++) {
    
        var sKey=str[i];

        var re=new RegExp(sFilter);    
        if (re.test(sKey)) {
            alert("특수문자는 이름에 들어갈 수 없습니다");
            obj.focus();
            return false;
        }
        return true;
    }
}

/****************************************************
// 숫자만 입력되도록 제어
****************************************************/
function onlyNumber(obj)
{
    sFilter="[0-9]";
    var sKey=String.fromCharCode(event.keyCode);  
    var re=new RegExp(sFilter);    
    if (re.test(sKey)) event.returnValue = true;
    else 
        if (event.ctrlKey == true || event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 9 
          || (event.keyCode >= 35 && event.keyCode <= 40) || event.keyCode == 27
          || (event.keyCode >= 96 && event.keyCode <= 105)) {
            event.returnValue= true;
        } else {
            event.returnValue = false;
        }
    //backspace => 8, delete =>46,  tab => 8,  esc => 27,  home_end_화살표 => 35 ~ 40 space=32
}


/****************************************************
// 수자와.만 입력되도록 제어
****************************************************/
function onlyNumber2(obj)
{
    var pattern = "[0-9]";
    var sKey=String.fromCharCode(event.keyCode);  
    var re=new RegExp(pattern);    
    if (re.test(sKey)) event.returnValue = true;
    else
        if (event.ctrlKey == true || event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 9 
          || (event.keyCode >= 35 && event.keyCode <= 40) || event.keyCode == 27 ||  event.keyCode == 190
          || (event.keyCode >= 96 && event.keyCode <= 105)) {
            event.returnValue= true;
        } else {
            event.returnValue = false;
        }
    //backspace => 8, delete =>46,  tab => 8,  esc => 27,  home_end_화살표 => 35 ~ 40 space=32
}


/****************************************************
// 숫자만 입력되었는지 체크
****************************************************/
function onlyNum(objtext1){
    var inText = objtext1.value;
    var ret;

    for (var i = 0; i < inText.length; i++) {
        ret = inText.charCodeAt(i);
        if (!((ret > 47) && (ret < 58)))  {
            alert("숫자만을 입력하세요");
            objtext1.value = "";
            objtext1.focus();
            return false;
        }
    }
    return true;
}
/****************************************************
// 숫자만 입력되었는지 체크
****************************************************/
function onlyNum2(objtext1,msg){
    var inText = objtext1.value;
    var ret;

    for (var i = 0; i < inText.length; i++) {
        ret = inText.charCodeAt(i);
        if (!((ret > 47) && (ret < 58)))  {
            alert(msg);
            objtext1.value = "";
            objtext1.focus();
            return false;
        }
    }
    return true;
}
/****************************************************
// 한글만 입력되었는지 체크
****************************************************/
function onlyHan(objtext1) 
{
    var inText = objtext1.value;
    var ret;

    for (var i = 0; i < inText.length; i++) {
        ret = inText.charCodeAt(i);
        if (ret > 31 && ret < 127) {
            alert("이름은 띄어쓰기 없이 한글로만 입력하세요");
            objtext1.value = "";
            objtext1.focus();
            return false;
        }
    }
    return true;
}

/****************************************************
// 영문숫자만 입력되었는지 체크
****************************************************/
function onlyEng(objtext1) {
    var inText = objtext1.value;
    var ret;

    for (var i = 0; i < inText.length; i++) {
        ret = inText.charCodeAt(i);
        
        if ((ret > 122) || (ret < 48) || (ret > 57 && ret < 65) || (ret > 90 && ret < 97)) {
            //alert( inText.substring(i,i+1)+" : "+ret);
            alert("영문자와 숫자만을 입력하세요");
            objtext1.value = "";
            objtext1.focus();
            return false;
        }
    }
    return true;
}

/****************************************************
// 영문, 숫자, .만 입력되었는지 체크
****************************************************/
function onlyEngPoint(objtext1) {
    var inText = objtext1.value;
    var ret;

    for (var i = 0; i < inText.length; i++) {
        ret = inText.charCodeAt(i);
        
        if ((ret < 46) || (ret > 46 && ret < 48) || (ret > 122) ||  (ret > 57 && ret < 65) 
            || (ret > 90 && ret < 97)) {
            //alert( inText.substring(i,i+1)+" : "+ret);
            alert("영문자와 숫자만을 입력하세요");
            objtext1.value = "";
            objtext1.focus();
            return false;
        }
    }
    return true;
}
/****************************************************
// Space키만 입력되지 않도록 함.
****************************************************/
function notSpace(obj)
{
    if (event.keyCode == 32)
        event.returnValue=false;
}

/****************************************************
// 이미지파일 인지 이미지 사이즈까지도 체크.
****************************************************/
function img_check(prev, cnt) {
    filename = document.images[prev].src;
    var obj = eval('document.all.'+prev);
    filesize = obj.fileSize;
    if (filename.toLowerCase().match(/(.jpg|.jpeg|.gif|.png)/)) {
        if (eval(filesize) < 0) {
            alert("이미지 파일인지 확인해 주십시오.");
            return -1;
        }
        if (eval(filesize) > 2*1024*1024) {
            alert("파일 사이즈는 2M 이상일 수 없습니다.");
            return -1;
        }
    } else {
        document.images[prev].src = "";
        alert("이미지 확장자가 아닙니다");
        return -1;
    }
    return 1;
}


/***********************************************************
//  기능 : 최소 길이 수 미만인 경우 경고창을 띄운다.(Text Box 인 경우만 해당)
//  파라메터 :  * obj - 오브젝트
                * min - 최소길이
                * str - 경고 문구
// 결과     : 최소 길이 수 미만인 경우 false, 이외 true
***********************************************************/                
function lengthCheck(obj, min, str) {
    if (obj.value.length < min) {
        alert(str);
        obj.focus();
        return false;
    } else {
        return true;
    }   
}


/***********************************************************
// 주민등록번호 앞뒤 자리를 한개로 합쳐서, check function으로 보낸다.
***********************************************************/                
function CheckJuminNo2(ssn1, ssn2) {
    
    var no1 = ssn1;
    var no2 = ssn2;
    
    var juminNo = no1 + no2;
    
    var checkRsVal = CheckJuminNo(juminNo);
    
    if (!checkRsVal) {
        alert("올바르지않은 주민등록번호입니다.");
        return false;
    }
    //alert("올바른 주민등록번호입니다.");
    return true;    
}   
// 주민등록번호 13자리에 대한 정상 여부를 check한다.
function CheckJuminNo(juminNo) {
    
    var birthYear = juminNo.substring(0,2);
    var birthMonth = juminNo.substring(2,4);
    var birthDay = juminNo.substring(4,6);  
    var genderBit = juminNo.substring(6,7);

    // 주민번호 자리수가 13자리가 아니면 false
    if (juminNo.length != 13) {
        //alert("주민등록번호 13자리이어야 합니다.");
        return false;
    }
    
    // 주민번호중 숫자가 아닌값이 포함되어있으면 false
    for (i=0; i<juminNo.length; i++){
        numCheck = juminNo.substring(i,i+1);
        if (numCheck < '0' || numCheck > '9'){ 
            //alert("숫자가 아닌값이 들어가 있읍니다.");
            return false;
        }
    }
    
    // 주민번호 (6)번째 자리수가 "1" 또는 "2"이면 1900년대생이고, "3" 또는 "4"이면 2000년대생이다.
    if (genderBit == '1' || genderBit == '2') {
        birthYear = "19" + birthYear
    } else if (birthYear == '3' || birthYear == '4') {
        birthYear = "20" + birthYear
    } else {
        //alert("성별 bit가 틀립니다.");
        return false;
    }
    
    // 생년에 따른 월과 일이 범위안에 있는가 체크한다.(윤년 확인)
    var days;
    if (birthMonth==1 || birthMonth==3 || birthMonth==5 || birthMonth==7 || birthMonth==8 || birthMonth==10 || birthMonth==12)  days=31;
    else if (birthMonth==4 || birthMonth==6 || birthMonth==9 || birthMonth==11) days=30;
    else if (birthMonth==2)  {
        if (((birthYear % 4)==0) && ((birthYear % 100)!=0) || (birthYear==0)) days=29;
        else days=28;
    }
    
    if (birthDay > days) {
        //alert("일자가 틀립니다.");
        return false;
    }
   
    // check digit bit  
    var checkBit = 0;
    var checkDigit = juminNo.substring(12,13);
    
    checkBit = checkBit + juminNo.substring(0,1) * 2;
    checkBit = checkBit + juminNo.substring(1,2) * 3
    checkBit = checkBit + juminNo.substring(2,3) * 4;
    checkBit = checkBit + juminNo.substring(3,4) * 5;
    checkBit = checkBit + juminNo.substring(4,5) * 6;
    checkBit = checkBit + juminNo.substring(5,6) * 7;
    
    checkBit = checkBit + juminNo.substring(6,7) * 8;
    checkBit = checkBit + juminNo.substring(7,8) * 9;
    checkBit = checkBit + juminNo.substring(8,9) * 2;
    checkBit = checkBit + juminNo.substring(9,10) * 3;
    checkBit = checkBit + juminNo.substring(10,11) * 4;
    checkBit = checkBit + juminNo.substring(11,12) * 5;
        
    checkBit = (11 - (checkBit % 11)) % 10;
    if (checkBit != checkDigit) {
        //alert("Check Bit가 틀립니다.");
        return false;   
    }
        
    return true;
}

//공백문자 체크 : 폼 값에 공백이 들어가 있는지 체크
//공백문자가 아닌 문자개수 리턴
//2006-08-30 강태준 추가
function checkBlank(strOrigin, strFind, strChange)
{
    var strIndex, strLength;
    strIndex= strOrigin.indexOf(strFind);

    while(strIndex!= -1)
    {
        strOrigin= strOrigin.replace(strFind, strChange);
        strIndex= strOrigin.indexOf(strFind);
    }

    strLength= strOrigin.length;
    return strLength;
}

function delete_confirm(msg,turl)
{
    if(confirm(msg))
    {
        location.href=turl;
        return;
    }
else
    {
        alert("삭제가 취소 되었습니다.");
    }
}

//폼전송
function delete_confirm2(msg,frm)
{
    frm= eval("document."+frm);

    if(confirm(msg))
    {
        frm.action.value= "delete";
        frm.submit();
        return;
    }
else
    {
        alert("삭제가 취소 되었습니다.");
    }
}

function    getRadioValuexx(r)
{
    for(i = 0; i < r.length; i++)
    {
        if(r[i].checked == true)
        {
            return r[i].value;
        }
    }
}

function win_open(fname,winname,w,h,s)
{
    var x;
    opt = "width="+w+",height="+h+",scrollbars="+s;
    x = window.open(fname,winname,opt);
    return x;
}   

function objtojs(str)
{
    document.write(str);
}

function getRadioValue(radio)
{
    rtn = 0;
    l = radio.length;
    for (i = 0; i < l; i++)
    {
        if(radio[i].checked == true) return radio[i].value;
    }
    return "";
}


    var gt = false;
    function checkCnt(frm)
    {
        rtn = 0;
        l = frm.elements.length;
        for (i = 0; i < l; i++)
        {
            if(frm.elements[i].checked == true) rtn++;
        }
        return rtn;
    }
    
    function toggle(frm)
    {
        gt = !gt;
        if(gt == true) checkAll(frm)
        else  uncheckAll(frm)
    }
    
    
    function checkAll(field)
    {
        l = field.elements.length;
        for (i = 0; i < l; i++)
        {
            if (field.elements[i].type == "checkbox")
            {
                field.elements[i].checked = true;  
            }
            pct = parseInt(i/l*100);
            if (pct % 5 == 0) window.status = 'Working (' + pct + '%)';
        }
        window.status = 'Done';
    }
    
    function uncheckAll(field)
    {
        field.reset();
    }

//체크박스 모두체크 해제
//체크하고 싶은 체크박스에 idx 속성을 추가 한다
// <input type="checkbox" idx="index">
//arg : 현재 체크 박스, idx : 체크하고 싶은 체크박스의 idx 값

function all_check(arg, idx)
{
    var chkboxStatus= arg.checked;
    var obj = document.getElementsByTagName("input");
    var i = 0;

    while(obj[i])
    {
        if(obj[i].type == "checkbox"&& obj[i].idx== idx&& obj[i].disabled== false)
        {
            obj[i].checked = chkboxStatus;
        }
        i++;
    }
}
    function put_comma(k)
    {
        var txtNumber = k.value;
        if (isNaN(txtNumber))
            {//숫자인가 비교
            alert("숫자만 입력 하세요");
            return "0";
        }
        else
            {
            var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
            var arrNumber = txtNumber.split('.');
            arrNumber[0] += '.';
            do
            {
                arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
            }
            while (rxSplit.test(arrNumber[0]));

            if (arrNumber.length > 1) k.value = arrNumber.join('');
            else k.value = arrNumber[0].split('.')[0];
        }
    }

    function clear_comma(k) {
        re = /^$|,/g; // "$" and "," 입력 제거
        srcNumber = k.value.replace(re, ""); //콤마를 제거 해 준다....
        k.value = srcNumber;
    }

    //select
    function sel_show(str) {
        sel_obj = document.getElementById(str);
        sel_obj.style.display = "block";
    }

    function sel_hide(str) {
        sel_obj = document.getElementById(str);
        sel_obj.style.display = "none";
    }

