/************************************************
    기능 : 자동 포커스 이동
    숫자형의 text 입력 시 max length에 다다르면 다음 element로 포커스를 이동합니다.
    사용예 : <input type="text" name="e1" size="3" maxlength="3" onkeyup="moveFocus(this, this.value);" />
    Form Name : mainFrm
*************************************************/
function moveFocus(x, y)
{
    var f = x.form;
    if (x.maxLength == y.length) {
        for (var i = 0, next = 0; i < f.length; i++) {
            if (x.name == f.elements[i].name) {
                next = i + 1;
                if (next < f.length) {
                    f.elements[next].focus();
                    break;
                }
            }
        }
    }
}

/************************************************
    기능 : 숫자만 입력
    사용예 : <input type="text" onkeyup="checkNumber(this);" />
*************************************************/
function checkNumber(obj)
{
    var number = /[^0-9]/g;
    if (number.test(obj.value)) {
        alert("숫자만 입력하실 수 있습니다.");
        obj.value = "";
        obj.focus();
        return;
    }
}

/************************************************
    기능 : 통화포멧 만들기 (마이너스 포함)
    사용예 : <input type="text" onkeyup="numberFormat(this);" />
*************************************************/
function numberFormat(obj)
{
    var number = obj.value.replace(/,/g, "");
    var currancy = /[^-0-9,]/g;
    if (currancy.test(number)) {
        alert("숫자만 입력하실 수 있습니다.");
        obj.value = "";
        obj.focus();
        return;
    }
    if (number.length > 3) {
        if (number.charAt(0) == '-') {
            number = number.substr(1);
            var minus = true;
        }
        var mod = number.length % 3;
        var div = number.length / 3;
        var output = (mod > 0 ? (number.substring(0, mod)) : "");

        for (var i = 0; i < Math.floor(div); i++) {
            if ((mod == 0) && (i == 0)) {
                output += number.substring(mod + 3 * i, mod + 3 * i + 3);
            } else {
                output += "," + number.substring(mod + 3 * i, mod + 3 * i + 3);
            }
        }
        if (minus) {
            obj.value = "-"+ output;
        } else {
            obj.value = output;
        }
    } else {
        obj.value = number;
    }
}

/************************************************
    기능 : 정수를 통화포멧으로 리턴
    사용예 : 세금계산서에서 주로 사용함
*************************************************/
function currencyFormat(val)
{
    var number = val.toString();
    if (number.length > 3) {
        var mod = number.length % 3;
        var div = number.length / 3;
        var output = (mod > 0 ? (number.substring(0, mod)) : "");
        for (var i = 0; i < Math.floor(div); i++) {
            if ((mod == 0) && (i == 0)) {
                output += number.substring(mod + 3 * i, mod + 3 * i + 3);
            } else {
                output += "," + number.substring(mod + 3 * i, mod + 3 * i + 3);
            }
        }
        return output;
    } else {
        return number;
    }
}

function openWindow(url, winName, width, height, flag)
{
    if (!flag) {
        var nW = window.open(url, winName, "width="+ width +",height="+ height);
    } else {
        var nW = window.open(url, winName, "width="+ width +",height="+ height +",scrollbars,resizable");
    }
    nW.focus();
}

// argument로 현재 창의 document 객체를 기본으로 보내게 한다.
function openModal(url, width, height)
{
    var docObj = new Object();
    docObj = window.document;
    window.showModalDialog(url, docObj, "dialogHeight: "+ height +"px; dialogWidth: "+ width + "px; center: Yes; resizable: Yes; status: No; help: No;");
}

// 확장자 알아내기
function getExtension(fileName)
{
    var indexOfDot = fileName.lastIndexOf(".") + 1;
    return fileName.substr(indexOfDot);
}

// 웹이미지 확장자 체크
function checkImageFile(fileName)
{
    var flag = false;
    var imgExt = new Array("gif", "jpg", "png");
    for (var i = 0; i < imgExt.length; i++) {
        if (imgExt[i] == getExtension(fileName.toLowerCase())) {
            flag = true;
        }
    }
    return flag;
}

// 클립보드로 복사
function copyText(val)
{
    window.clipboardData.setData("Text", val);
    alert("["+ val +"] 복사했습니다.");
}

// 부가세 포함
function includeTax(amount)
{
    return Math.round(amount * 1.1);
}

function nl2br(str)
{
    return str.replace(/\r\n/g, "<br />");
}

function br2nl(str)
{
    return str.replace(/<BR>/g, "\r\n");
}