/* Àü¿ª º¯¼ö */
 
var IS_NAV = (navigator.appName == "Netscape");
var IS_IE = (navigator.appName == "Microsoft Internet Explorer");

var IS_WIN = (navigator.userAgent.indexOf("Win") != -1);
var IS_MAC = (navigator.userAgent.indexOf("Mac") != -1);
var IS_UNIX = (navigator.userAgent.indexOf("X11") != -1);

/**
 * ÄíÅ°¿¡ ÀúÀåµÈ °ªÀ» ¹ÝÈ¯ÇÑ´Ù.
 * @param name ÄíÅ° ÀÌ¸§
 * @return ÄíÅ° ÀÌ¸§¿¡ ´ëÇÑ °ªÀ» ¹ÝÈ¯. ¾ø´Â °æ¿ì¿¡´Â ""¸¦ ¹ÝÈ¯.
 */
function getCookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) {
            return getCookieVal(j);
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }
    return "";
}


/**
 * ÄíÅ°¸¦ ÀúÀåÇÑ´Ù.
 * @param name ÄíÅ° ÀÌ¸§
 * @param value ÄíÅ° °ª
 * @param expires ÄíÅ°ÀÇ À¯È¿ ÀÏ
 * @param path
 * @param domain
 * @param secure
 */
function setCookie(name, value, expires, path, domain, secure) {
    if (!path) {
        path = "/";
    }
    document.cookie = name + "=" + escape (value) +
                    ((expires) ? "; expires=" + expires : "") +
                    ((path) ? "; path=" + path : "") +
                    ((domain) ? "; domain=" + domain : "") +
                    ((secure) ? "; secure" : "");
}


/**
 * ÄíÅ°¸¦ »èÁ¦ÇÑ´Ù.
 * @param name »èÁ¦ÇÒ ÄíÅ° ÀÌ¸§
 * @param path
 * @param domain
 */
function deleteCookie(name, path, domain) {
    if (!path) {
        path = "/";
    }
    if (getCookie(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") + 
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}


/**
 * ÄíÅ°¸¦ ÀúÀåÇÒ ¶§ ÇÊ¿äÇÑ ÀûÇÕÇÑ Çü½ÄÀÇ À¯È¿±â°£À» ¹ÝÈ¯ÇÑ´Ù.
 * @days ÄíÅ°°¡ À¯È¿ÇÒ ÀÏ (¿¹¸¦ µé¾î 3 ÀÏ µ¿¾È À¯È¿ÇØ¾ß ÇÏ¸é 3À» ÀÔ·Â)
 * @hours ÄíÅ°°¡ À¯È¿ÇÒ ½Ã°£ (¿¹¸¦ µé¾î 2 ½Ã°£ µ¿¾È À¯È¿ÇØ¾ß ÇÏ¸é 2¸¦ ÀÔ·Â)
 * @minutes ÄíÅ°°¡ À¯È¿ÇÒ ºÐ (¿¹¸¦ µé¾î 30 ºÐ µ¿¾È À¯È¿ÇØ¾ß ÇÏ¸é 30À» ÀÔ·Â)
 */
function getExpDate(days, hours, minutes) {
    var expDate = new Date( );
    if (typeof days == "number" && typeof hours == "number" &&
        typeof hours == "number") {
        expDate.setDate(expDate.getDate( ) + parseInt(days));
        expDate.setHours(expDate.getHours( ) + parseInt(hours));
        expDate.setMinutes(expDate.getMinutes( ) +
        parseInt(minutes));
        return expDate.toGMTString( );
    }
}


/**
 * ÄíÅ° °ªÀ» ÀÐÀ» ¶§ »ç¿ëÇÏ´Â º¸Á¶ ÇÔ¼ö
 */
function getCookieVal(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1) {
        endstr = document.cookie.length;
    }
    return unescape(document.cookie.substring(offset, endstr));
}

/**
 * ÀÔ·Â¹ÞÀ» ¼ö ÀÖ´Â °ªÀ» ÇÊÅÍ¸µÇÑ´Ù.
 * ex : <input type="text" ..... onkeypress="filterKey('[0-9]')"> ; ¼ýÀÚ¸¸ Å°ÀÔ·ÂÀÌ °¡´ÉÇÑ text filed
 * ex : <input type="text" ..... onkeypress="filterKey('[0-9a-zA-Z]')"> ; ¿µ¹®,¼ýÀÚ¸¸ Å°ÀÔ·ÂÀÌ °¡´ÉÇÑ text filed
 * @param filter : ÇÊÅÍ¸µÇÒ Á¤±ÔÇ¥Çö½Ä ex) '[0-9]':0~9ÀÇ °ª¸¸ Çã¿ë, '[a-zA-Z]':¾ËÆÄºª¸¸ Çã¿ë
 * @return 
 */
function filterInputData(filter) {
    if (filter) {
        var sKey = String.fromCharCode(event.keyCode);
        var re = new RegExp(filter);
        if (!re.test(sKey)) {
            event.returnValue = false;
        }
    }
}


/**
 * ÁÖ¾îÁø ÅØ½ºÆ®(source)¿¡ Æ¯Á¤ ¹®ÀÚ(query)°¡ ³ªÅ¸³ª´Â È½¼ö¸¦ ¹ÝÈ¯ÇÑ´Ù.
 * @param source ´ë»óÀÌ µÇ´Â ÅØ½ºÆ®
 * @param query °Ë»öÇÏ·Á´Â ÅØ½ºÆ®
 * @return ÁÖ¾îÁø ÅØ½ºÆ®¿¡ Æ¯Á¤ ¹®ÀÚ°¡ ³ªÅ¸³ª´Â È½¼ö
 */
function countInstances(source, query) {
    var re = new RegExp(query, "g");
    var result = source.match(re);
    return (result) ? result.length : 0;
}

/**
 * <div> ÅÂ±×ÀÇ ³»¿ë Áß Æ¯Á¤ ÅØ½ºÆ®(before)¸¦ Æ¯Á¤ ÅØ½ºÆ®(after)·Î º¯°æÇÑ´Ù.
 * @param id <div> ÅÂ±×ÀÇ id ¼Ó¼º °ª
 * @param before º¯°æ Àü ÅØ½ºÆ®
 * @param after º¯°æ ÈÄ ÅØ½ºÆ®
 */
function replaceTextInDiv(id, before, after) {
    var element = document.getElementById(id).firstChild;
    var re = new RegExp(before, "g");
    element.nodeValue = element.nodeValue.replace(re, after);
    return false;
}

function writeTextInElement(id, text) {
    var element = document.getElementById(id);
    if (element.firstChild) {
        element.firstChild.nodeValue = text;
    } else {
        var child = document.createTextNode(text);
        element.appendChild(child);
    }
    return false;
}

/**
 * ÀÔ·Â º¯¼ö¿¡ 3 ÀÚ¸®¸¶´Ù ÄÞ¸¶(,)¸¦ ºÙ¿© ¹ÝÈ¯ÇÑ´Ù.
 * @param field ÄÞ¸¶¸¦ ºÙÀÏ °ª
 */
function formatCommas(numString) {
    var re = /,|\s+/g;
    numString = numString.replace(re, "");

    re = /(-?\d+)(\d{3})/;
    while (re.test(numString)) {
        numString = numString.replace(re, "$1,$2");
    }
    return numString;
}

function stripCommas(numString) {
    var re = /,/g;
    return numString.replace(re, "");
}

/**
 * ÅØ½ºÆ® ÇÊµå¿¡ ÀÔ·ÂÇÑ °ª¿¡ 3ÀÚ¸®¸¶´Ù ÄÞ¸¶(,)¸¦ ºÙÀÎ´Ù.
 * ÅØ½ºÆ® ÇÊµå¿¡ ¾Æ·¡¸¦ ±âÀÔÇÑ´Ù. onkeyup="toMoney(this)"
 * @param field ÅØ½ºÆ® ÇÊµå
 */
function toMoney(field) {
    var value = field.value;
    var indexOfPoint = value.indexOf(".");
    if (indexOfPoint == -1) {
        field.value = formatCommas(value);
    } else {
        field.value = formatCommas(value.substring(0, indexOfPoint)) +
                        value.substring(indexOfPoint, value.length);
    }
}


/**
 * µÎ ³¯Â¥ »çÀÌÀÇ ÀÏ¼ö¸¦ °è»êÇÏ¿© ¹ÝÈ¯ÇÑ´Ù.
 * @param date1 ¹®ÀÚ¿­ µ¥ÀÌÅÍ·Î '20041012' Çü½Ä
 * @param date2 ¹®ÀÚ¿­ µ¥ÀÌÅÍ·Î '20041012' Çü½Ä
 */
function daysBetween(date1, date2) {
    date1 = new Date(date1.substring(0, 4), date1.substring(4, 6)-1, date1.substring(6,8));
    date2 = new Date(date2.substring(0, 4), date2.substring(4, 6)-1, date2.substring(6,8));
    var DSTAdjust = 0;
    oneMinute = 1000 * 60;
    var oneDay = oneMinute * 60 * 24;
    date1.setHours(0);
    date1.setMinutes(0);
    date1.setSeconds(0);
    date2.setHours(0);
    date2.setMinutes(0);
    date2.setSeconds(0);
    DSTAdjust = (date2.getTimezoneOffset( ) - 
                     date1.getTimezoneOffset( )) * oneMinute;
    var diff = date2.getTime( ) - date1.getTime() - DSTAdjust;
    return Math.ceil(diff/oneDay);
}


/**
 * Æ¯Á¤ ³ëµå°¡ °¡Áö°í ÀÖ´Â ¸ðµç ¼Ó¼ºÀ» TEXTAREA¿¡ Ãâ·ÂÇÑ´Ù. °³¹ß ÆíÀÇ¸¦ À§ÇØ¼­
 * Á¦°øµÇ´Â ÇÔ¼öÀÌ´Ù.
 * @param obj ¼Ó¼º °ªÀ» ¾Ë°íÀÚ ÇÏ´Â ³ëµå
 */
function listProperties(obj) {
    var objName;

    if (obj.nodeName) {
        objName = obj.nodeName;
    } else {
        objName = "navigator";
    }

    var result = "";
    for (var i in obj) {
        result += objName + "." + i + "=" + obj[i] + "\n";
    }

    var area = document.createElement("textarea");
    area.rows = 20;
    area.cols = 50;
    var body = document.getElementsByTagName("BODY");
    if (body) {
        body[0].appendChild(area);
    } else {
        alert("body ÅÂ±×°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.");
        return false;
    }
    area.value = result;
    return false;
}

function getQueryString() {
    var result = "";
    var queryTags = document.getElementsByTagName("input");
    for (var i = 0; i < queryTags.length; i++) {
        var name = queryTags[i].name;
		if (name && name.substring(0, 2) == "q_" || name == "pageNo") {
		    result += "&" + name + "=" + queryTags[i].value;
		}
    }

    queryTags = document.getElementsByTagName("select");
    for (var i = 0; i < queryTags.length; i++) {
        var name = queryTags[i].name;
		if (name && name.substring(0, 2) == "q_" || name == "pageNo") {
		    result += "&" + name + "=" + queryTags[i].value;
		}
    }
    return result;
}


/**
 * ÅØ½ºÆ® ÇÊµå¿¡ ÀÔ·ÂÇÑ °ª¿¡ 6ÀÚ¸® ÀÌÈÄ¿¡ ´ë½Ã(-)¸¦ ºÙÀÎ´Ù.
 * ÅØ½ºÆ® ÇÊµå¿¡ ¾Æ·¡¸¦ ±âÀÔÇÑ´Ù. onkeyup="toSsn(this)"
 * @param field ÅØ½ºÆ® ÇÊµå
 */
function toSsn(field) {
    var number = String(field.value);
    number = number.replace(/-|\s+/g, "");

    var length = number.length;

    if (length < 6) {
        field.value = number;
    } else {
        var result = number.substring(0, 6) + "-";
        result += number.substring(6, length);
        field.value = result;
    }
}

/*
 * Microsoft Internet Explorer Ver
 */
 
function msExplorer() {
	if(navigator.appName==""){
		browser="No browser,";
	} else {
		browser=navigator.appName;
	}
	
	version = parseFloat(navigator.appVersion);
	if ((Math.round(parseFloat(navigator.appVersion)*100)) - (parseInt(navigator.appVersion) * 100) == 0) {
		version = version + ".0";
	}
	
	if (navigator.appName.substring(0,9) == "Microsoft") {
		msiestart = (navigator.appVersion.indexOf('(') + 1);
		msieend = navigator.appVersion.indexOf(')');
		msiestring = navigator.appVersion.substring(msiestart, msieend);
		msiearray = msiestring.split(";");
		platform = msiearray[2];
		msieversion = msiearray[1].split(" ");
		version = msieversion[2];
	}
	
	return version;
}

