﻿/** 
* 여기는 게시판 관련 스크립터 모음
*/

var msg_delete_config = "정말로 삭제하시겠습니까?";



function doDeleteAll() {
    if (!confirm(msg_delete_config))
        return;
    try {
        doUserDeleteAll();
    } catch (e) {
        alert("doUserDeleteAll 함수호출에 오류가 발생했습니다.\n오류:" + e.Message);
    }
}

function doCheckAll(name) {
    if ($("#" + name + ":checked").length > 0) {
        $("input:check:not(checked)").attr("checked", "checked");
    } else {
        $("input:check:checked").attr("checked", "");
    }

}

function CheckAll(name) {
    var obj = document.getElementsByName(name);
    var val = true;
    if (name.checked == false) {   //값이 체크가 안되어져 있으면
        val = false;             //전체선택을 해제 하게끔 하기
    }
    for (var i = 0; i < obj.length; i++) {
        obj[i].checked = val;
    }
}    

var skinName = "dhx_skyblue";

function showMessage(title) {
    var dhxWins = new dhtmlXWindows();
    dhxWins.setViewport(50, 50, 1024, 768);
    dhxWins.enableAutoViewport(true);
    dhxWins.vp.style.border = "#909090 0px solid";
    dhxWins.setImagePath('/scripts/codebase/imgs/');
    dhxWins.setSkin(skinName);

    var w1 = dhxWins.createWindow('w1', 18, 16, 320, 200);
    w1.setText(title);
    w1.appendObject('ValidationSummary');
    dhxWins.window('w1').centerOnScreen();
}


function openWindow(name, url, width, height) {
    window.open(url, name, "width: " + width + ", height: " + height);
}

var dhxWins;

function showPopup(title, url, width, height) {
    var w1;
    if (dhxWins == null || dhxWins == "") {
        CreateWindowObject();
    }
    w1 = CreateWindow(width, height);
    w1.setText(title);
    //    w1.progressOn();
    w1.attachURL(url);
    w1.centerOnScreen();
    w1.style.position = "absolute";
    //    w1.setModal(true);
    return w1;
}

function showPopup2(divId, url) {
    var div = document.getElementById(divId);
    div.src = url;
    div.style.display = "";
}

function CreateWindowObject() {
    dhxWins = new dhtmlXWindows();
    dhxWins.setViewport(1, 1, document.body.offsetWidth, document.body.offsetHeight);
    dhxWins.enableAutoViewport(true);
    dhxWins.vp.style.border = "#909090 0px solid";
    dhxWins.setImagePath(dhtmlx.image_path);
    dhxWins.setSkin(skinName);
}


function CreateWindow(width, height) {
    var w1;
    if (dhxWins.window("w1") == null) {
        w1 = dhxWins.createWindow("w1", 18, 16, width, height);
    }
    else {
        w1 = dhxWins.window("w1");
        w1.w = width;
        w1.h = height;
    }

    w1.allowResize();
    w1.allowMove()
    w1.button("park").hide();
    w1.button("minmax1").hide();
    w1.bringToTop();

    return w1;
}

function closePopup() {
    dhxWins.window('w1').close();
}

function CreateCalendar(name, sFormat, fromDt) {
    try {
        var mSCal = new dhtmlxCalendarObject(name + "_Cal", false, { isWinHeader: true, isMonthEditable: true, isYearEditable: true, headerButtons: 'XT', isWinDrag: true, headerText: "" });
        if (sFormat == null || sFormat == "")
            sFormat = ClientGlobal.DateFormat;
        var dateFormat = convertDateFormat(sFormat, ClientGlobal.DateFormatDelimit);
        mSCal.loadUserLanguage(ClientGlobal.Language);
        mSCal.setSkin(CalendarSkinName);
        mSCal.setDateFormat(dateFormat);
        if (fromDt != "")
            mSCal.setDate(fromDt);
        //mSCal.setHeaderText("달력");
        mSCal.attachEvent("onClick", function (date) { window.SetDate(name, date, dateFormat); });
        mSCal.entObj.style.position = "absolute";
        mSCal.hide();
    } catch (e)
   { }


    //var obj = document.getElementById(name);
    //mSCal.setPosition(obj, 25, 0-obj.offsetWidth);
    //mSCal.draw();
    //    mSCal.show(false);
    return mSCal;
}

function MsgBox(message, title, w, h) {
    var dhxWins = new dhtmlXWindows();
    dhxWins.setViewport(50, 50, 1024, 768);
    dhxWins.enableAutoViewport(true);
    dhxWins.vp.style.border = "#909090 0px solid";
    dhxWins.setImagePath('/scripts/codebase/imgs/');
    dhxWins.setSkin(skinName);
    
    if (w == null) w = 320;
    if (h == null) h = 170;

    var w1 = dhxWins.createWindow('w1', 18, 16, w, h);
    w1.setText(title);

    var html = "<div class=\"ttt\">\n";
		html += "					<p>" + message + "</p>";
		html += "				</div><!--// ttt -->";
		html += "				<div class=\"btn_list\">";
		html += "					<a href=\"javascript:OkClick();\"><img src=\"../content/images/daekyo/btn/btn_oks.gif\" alt=\"확인\" /></a>";
		html += "					<a href=\"javascript:CancelClick();\"><img src=\"../content/images/daekyo/btn/btn_cancels.gif\" alt=\"취소\" /></a>";
		html += "				</div><!--// btn_list -->";

    w1.attachHTMLString(html);
    dhxWins.window('w1').centerOnScreen();
    return dhxWins.window('w1');
}


/**
*  문자열 변환
*
* @param source 		대상 문자열
* @param expression	변환할 문자열
* @param replaced		변환된 문자열
*/
function IsNumeric(source) {
    var nChk = true;

    source = replace(source, ",", "");
    try {
        nChk = Number(val.value);
        if (String(nChk) == "NaN" || val.value == "")
            return false;
    } catch (exception) {
        return false;
    }


    return true;
}


/**
*  문자열 변환
*
* @param source 		대상 문자열
* @param expression	변환할 문자열
* @param replaced		변환된 문자열
*/
function replace(source, expression, replace) {
    var pos = 0;
    var pre_str = "";
    var post_str = "";
    pos = source.indexOf(expression)

    while (pos != -1) {
        pre_str = source.substr(0, pos);
        post_str = source.substr(pos + expression.length, source.length);
        source = pre_str + replace + post_str;
        pos = source.indexOf(expression);
    }

    return source;
}


// -- format 기능
String.prototype.format = function () {
    var pattern = /\{\d+\}/g;
    var args = arguments;
    return this.replace(pattern, function (capture) { return args[capture.match(/\d+/)]; });
}
// -- 공백제거
String.prototype.trim = function () {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
// -- 정수로 바꾸기
String.prototype.int = function () {
    if (!isNaN(this)) {
        return parseInt(this);
    }
    else {
        return null;
    }
}
// -- 숫자만 거내기
String.prototype.num = function () {
    return (this.trim().replace(/[^0-9]/g, ""));
}
// -- 숫자에 3자리마다 , 를 찍어서 반환
String.prototype.money = function () {
    var num = this.trim();
    while ((/(-?[0-9]+)([0-9]{3})/).test(num)) {
        num = num.replace((/(-?[0-9]+)([0-9]{3})/), "$1,$2");
    }
    return num;
}
// -- 숫자의 자리수(cnt)에 맞도록 반환

String.prototype.digits = function (cnt) {
    var digit = "";
    if (this.length < cnt) {
        for (var i = 0; i < cnt - this.length; i++) {
            digit += "0";
        }
    }
    return digit + this;
}
// --  -> &#34; ' -> &#39;로 바꾸어서 반환
String.prototype.quota = function () {
    return this.replace(/"/g, "&#34;").replace(/'/g, "&#39;");
}
// -- 숫자로 구성되어 있는지 
String.prototype.isNum = function () {
    return (/^[0-9]+$/).test(this.remove(arguments[0])) ? true : false;

}
// -- 전화번호규칙
String.prototype.isPhone = function () {
    var arg = arguments[0] ? arguments[0] : "";
    return eval("(/(02|0[3-9]{1}[0-9]{1})" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}
// -- 핸드폰 규칙
String.prototype.isMobile = function () {
    var arg = arguments[0] ? arguments[0] : "";
    return eval("(/01[016789]" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}
String.prototype.RemoveDateFormat = function () {
    var rtnValue = "";
    rtnValuertnValue = replace(this, ".", "");
    arg = replace(arg, "/", "");
    arg = replace(arg, "-", "");
    arg = replace(arg, ":", "");
    arg = replace(arg, " ", "");
    return eval(arg);
}

// -- 숫자 포맷 ( digits 0 이상이면 소숫점 자리 올림 - 이면 자릿수 정수 올림)
//    전상훈(2009년 1월 11일)
Number.prototype.Ceil = function (digits) {
    if (digits < 0)
        digits = 1 / Math.pow(10, Math.abs(digits));
    else if (digits > 0)
        digits = Math.pow(10, Math.abs(digits));
    else
        digits = 1;
    var value = Number(this);


    return Math.ceil(value * digits) / digits;

}

function fnNumFormatFocus(type) {
    var numData = 0;

    try {
        numData = Number(String(type.value).num());
        if (String(numData) == "NaN" || type.value == "")
            numData = 0;

        if (numData == 0) {
            alert("숫자만 입력 가능합니다.");
            numData = "";
            chkNum = false;
        }
    } catch (exception) { type.select(); }

    type.value = String(numData);
    type.select();
    return chkNum;
}

function fnNumFormatFocusOut(type) {
    var numData = 0;
    var numData2 = 0;
    var chkNum = true;

    try {
        numData = Number(String(type.value).num());

        if (String(type.value)=="0000" || String(type.value)=="000") {
            numData2 = Number(1);
        }
        else {
            numData2 = Number(String(type.value).num());
        }

        if (String(numData) == "NaN" || type.value == "")
            numData = 0;

        if (numData==0 && numData2==0) {
            alert("숫자만 입력 가능합니다.");
            numData = "";
            numData2 = "";
            chkNum = false;
        }
    } catch (exception) { }

    if (numData=="" && numData2=="") {
        type.value = String(numData);
    }
    else {
        type.value = String(type.value);
    }
    
    return chkNum;
}
