/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | koreapack.org                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 2004 Youjin IT Group                                   |
// +----------------------------------------------------------------------+
// | This source file is licensed under Youjin IT Group                   |
// +----------------------------------------------------------------------+
// | Filename: /htdocs/js/common.js                                       |
// | °øÅë ÀÚ¹Ù½ºÅ©¸³Æ®                                                    |
// +----------------------------------------------------------------------+
// | Authors: Heechul Kim <jijisa at youjin dot net>                      |
// |          Ho-yeol Bae <alucard at youjin dot net>                     |
// +----------------------------------------------------------------------+
//
// $Id: common.js,v 1.1 2005/12/15 01:01:29 jijisa Exp $

/*
 * ÅØ½ºÆ® ÀÔ·Â¶õÀÇ ±ÛÀÚ ¼ö¸¦ Á¦ÇÑÇÏ´Â ÇÔ¼ö
 *
 * @param object ÅØ½ºÆ® ÀÔ·Â °³Ã¼
 * @param integer Á¦ÇÑ ±ÛÀÚ ¼ö
 * @return boolean ¿À¹öÇÃ·Î¿ì ¿©ºÎ
 * @access public
 */
function cutString(obj_id, limit_chars)
{
    var unicode     = 0;
    var over_flag   = false;

    for (var i = 0; i < obj_id.value.length; i ++) {
        if (obj_id.value.charCodeAt(i) > 127) {
            unicode += 2;
            if (unicode > limit_chars) {
                over_flag = true;
                break;
            } else {
                continue;
            }
        } else {
            unicode += 1;
            if (unicode > limit_chars) {
                over_flag = true;
                break;
            } else {
                continue;
            }
        }
    }

    if (over_flag) {
        obj_id.value = obj_id.value.substr(0, i);
    }

    return over_flag;
}

/**
 * ´ë»ó Æû ¾È¿¡ checkbox µéÀ» ¼±ÅÃ(checked/unchecked)ÇÏ´Â ÇÔ¼ö
 *
 * @param object Æû ID
 * @param boolean »óÅÂ°ª(true/false)
 * @param integer ½ÃÀÛ À§Ä¡
 * @param integer ³¡ À§Ä¡
 * @param integer ÀÎµ¦½º °£°Ý
 * @return void
 * @access public
 */
function checkAll(frm_id, flag, start_idx, end_idx, step_idx)
{
    start_idx   = (start_idx) ? start_idx : 0;
    end_idx     = (end_idx) ? end_idx : frm_id.elements.length;
    step_idx    = (step_idx) ? step_idx : 1;

    for (var i = start_idx; i < end_idx; i += step_idx) {
        if (frm_id.elements[i].type == "checkbox") {
            frm_id.elements[i].checked = flag;
        }
    }

    return;
}

/**
 * ´ë»ó Æû ¾È¿¡ checkbox µéÀ» ¹ÝÀü(checked<->unchecked)ÇÏ´Â ÇÔ¼ö
 *
 * @param object Æû ID
 * @param integer ½ÃÀÛ À§Ä¡
 * @param integer ³¡ À§Ä¡
 * @param integer ÀÎµ¦½º °£°Ý
 * @return void
 * @access public
 */
function checkReverse(frm_id, start_idx, end_idx, step_idx)
{
    start_idx   = (start_idx) ? start_idx : 0;
    end_idx     = (end_idx) ? end_idx : frm_id.elements.length;
    step_idx    = (step_idx) ? step_idx : 1;

    for (var i = start_idx; i < end_idx; i += step_idx) {
        if (frm_id.elements[i].type == "checkbox") {
            frm_id.elements[i].checked = ! frm_id.elements[i].checked;
        }
    }

    return;
}

/**
 * ´ë»ó Æû ¾È¿¡ ¼±ÅÃµÈ checkbox µéÀÇ °ªµéÀ»
 * ±¸ºÐÀÚ·Î ¹­¾îÁØ´Ù.
 *
 * @param object Æû ID
 * @param string ±¸ºÐÀÚ
 * @param integer ½ÃÀÛ À§Ä¡
 * @param integer ³¡ À§Ä¡
 * @param integer ÀÎµ¦½º °£°Ý
 * @return string ±¸ºÐÀÚ·Î ¹­¿©Áø °ª
 * @access public
 */
function checkValues(frm_id, separator, start_idx, end_idx, step_idx)
{
    start_idx   = (start_idx) ? start_idx : 0;
    end_idx     = (end_idx) ? end_idx : frm_id.elements.length;
    step_idx    = (step_idx) ? step_idx : 1;

    var check_values = "";
    for (var i = start_idx; i < end_idx; i += step_idx) {
        if ((frm_id.elements[i].type == "checkbox") && (frm_id.elements[i].checked == true)) {
            check_values += (check_values) ? separator + frm_id.elements[i].value : frm_id.elements[i].value;
        }
    }

    return check_values;
}

/**
 * ÆË¾÷ Ã¢(window)À» ¶ç¿ì´Â ÇÔ¼ö 
 * 
 * @param string URL
 * @param string À©µµ¿ì ÀÌ¸§
 * @param integer À©µµ¿ì °¡·ÎÅ©±â
 * @param integer À©µµ¿ì ¼¼·ÎÅ©±â
 * @access public
 */ 
function openWindow(win_url, win_name, win_width, win_height)
{
    var win_features = "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes";
    
    window.open(win_url, win_name, win_features + ", width=" + win_width + ", height=" + win_height);
}

/**
 * Å°º¸µåÀÇ ÀÔ·ÂÁß ¼ýÀÚ °ª¸¸À» Çã¿ëÇÏ´Â ÇÔ¼ö
 *
 * @param object event
 * @return ¼ýÀÚ°¡ ¾Æ´Ñ °æ¿ì Å°º¸µåÀÇ ÀÔ·ÂÀ» Ãë¼ÒÇÑ´Ù.
 * @access public
 */
function checkNumber(event)
{
    var charCode = (event.charCode || event.charCode == 0) ?
        event.charCode : ((event.keyCode) ? event.keyCode : event.which);

    if ((charCode != 0) && (charCode < 48) || (charCode > 57)) {
        if (event.returnValue) {
            event.returnValue = false;
        } else if (event.preventDefault) {
            event.preventDefault();
        } else {
            return false;
        }
    }
}

/**
 * ¼¼ÀÚ¸®¸¶´Ù ÄÞ¸¶(,)¸¦ ºÙÀÎ´Ù.
 *
 * @param integer number
 * @return string number
 * @access public
 */
function numberFormat(in_number)
{
    if (isNaN(parseInt(in_number)) == true) {
        return -1;
    }

    var in_number   = "" + in_number;
    var number      = "";
    var count       = 3 - (in_number.length % 3);
    for (var i = 0; i < in_number.length; i ++) {
        if ((i > 0) && (count % 3 == 0)) {
            number += "," + in_number.charAt(i);
        } else {
            number += in_number.charAt(i);
        }
        count ++;
    }

    return number;
}

function getCookie(name)
{
    var cookies = document.cookie.split('; ');
    for (var i = 0; i < cookies.length; i ++) {
        var temp = cookies[i].split('=');
        if (name == temp[0]) {
            return unescape(temp[1]);
        }
    }

    return null;
}

