/**
 * Title	: lib.js
 * Description	: ÀÏ¹Ý »ç¿ë lib + String prototype È®Àå
 *
 * @Author	: gggl.ko (kojaepil@easymedia.net)
 * @Create	: 2008-03-13
 *
 * @Update	:
 */

function debug(e) {
    alert(e.message);
}

/* String prototype È®Àå */

/*
 * °ø¹éÁ¦°Å / str ÀÌ ÀÖÀ»°æ¿ì, ¾ÕµÚ·Î °ø¹é°ú + ÇØ´ç ¹®ÀÚ¿­À» Á¦°Å
 */
String.prototype.trim = function() {
	var rtn = this.replace(/(^[ \f\n\r\t]*)|([ \f\n\r\t]*$)/g, "");
	//if (str != undefined) {
	//	rtn = rtn.replace(/^\str\/*/, '').replace(/\str\/*$/, '');
	//}
	return rtn;
}

/*
 * left
 */
String.prototype.left = function(len) {
	var str = this;
	var l = 0;
	for (var i=0; i<str.length; i++) {
		l += (str.charCodeAt(i) > 128) ? 2 : 1;
		if (l > len) return str.substring(0,i);
	}
	return str;
}

/*
 * right
 */
String.prototype.right = function(len) {
	var str = this;
	var strLen = String(str).length;

	if (len <= 0) return "";
	if (len > strLen) return str;

    return String(str).substring(strLen, strLen - len);
}

/*
 * byte ¹ÝÈ¯
 */
String.prototype.byte = function() {
	var cnt = 0;
		for (var i = 0; i < this.length; i++) {
				if (this.charCodeAt(i) > 127) {
						cnt += 2;
				} else {
						cnt++;
				}
		}
	return cnt;
}

/*
 * Á¤¼öÇü º¯È¯
 */
String.prototype.int = function() {
	if(!isNaN(this)) {
		return parseInt(this);
	} else {
		return 0;
	}
}

/*
 * ¼ýÀÚ¸¸ °¡Á® ¿À±â
 */
String.prototype.getNum = function() {
	return (this.trim().replace(/[^0-9]/g, ""));
}

/*
 * ÅÂ±×Á¦°Å
 */
String.prototype.stripTags = function () {
	var str = this;
	var pos1 = str.indexOf('<');

	if (pos1 == -1) return str;
	else {
		var pos2 = str.indexOf('>', pos1);
		if (pos2 == -1) return str;
		return (str.substr(0, pos1) + str.substr(pos2+1)).stripTags();
	}
}

/*
 * DbStr
 * -- µðºñÀÔ·Â¹®ÀÚ¿­·Î Ä¡È¯
 */
String.prototype.dbStr = function () {
	var rtn = encodeURIComponent(nvl(this).trim().stripTags());
    return rtn;
}

/*
 * replaceAll
 * note : Æ¯Á¤ºê¶ó¿ìÀúÀÇ °æ¿ì, { ´Â %7B , { ´Â } ´Â %7D ·Î ¹®ÀÚ¿­ Ã³¸®°¡ µÇ´Â°æ¿ì°¡ ÀÖÀ¸¹Ç·Î, ÇØ´ç ºÎºÐÃß°¡
 */
String.prototype.replaceAll = function(str1,str2) {
    return this.split(str1).join(str2);
}

String.prototype.replaceAllE = function() {
    
   var temp = this;

	while( temp.indexOf( '+' ) != -1)
	{
		temp = temp.replace( '+', '{@&plus&@}' );
	}

	while( temp.indexOf( '-' ) != -1)
	{
		temp = temp.replace( '-', '{@&minus&@}' );
	}
	
	return temp;

}

/*
 * inArray
 */
Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};


/* str cut - str ¸¦ numÀÇ ±æÀÌ°¡ ³ÑÀ¸¸é ÀÚ¸¥´Ù. */
String.prototype.cut = function(len, tail) {

	if (arguments.length == 1) tail = "...";
	var str = this;
	var l = 0;

	for (var i=0; i<str.length; i++) {
		l += (str.charCodeAt(i) > 128) ? 2 : 1;
		if (l > len) return str.substring(0,i) + tail;
	}
	return str;
}

/* ¿À¶óÅ¬ nvl */
function nvl(v,vv) {

	if (vv == undefined) vv="";

	try {

		if (v == null) return vv;
		if (v) {
			return v;
		} else {
			return vv;
		}

	} catch (e) {
        debug(e,"nvl ¸Þ¼Òµå")
		return vv;
	}
}


// //////////////////////////////////////////////////////////////////////////////////////////////////////////////

/**
 * @Title : Ã¹Â° ÆÄ¶ó¹ÌÅÍÀÇ ÀÔ·ÂÆûÀ» °Ë»çÇÏ¿©, µÎ¹øÂ° ÆÄ¶ó¹ÌÅÍÀÇ °ªÀ» ÇÒ´çÇÑ´Ù.
 * @Description : 
 * @Create : 2010-07-14 / gggl.ko
 *
 */
function valSet(obj,val) {
    if(typeof obj != "undefined") {
        if (isNaN(obj.length) == true) {
            if (obj.type == "radio") {
                alert(obj.value);
            }
            if (obj.type == "radio" || obj.type == "checkbox") {
                $c(obj,val);    
            } else {
                obj.value = val;
            }
        } else {
            if (obj[0].type == "radio" || obj[0].type == "checkbox") {
                for (var i=0;i<obj.length ;i++ ) {
                    if (obj[i].value == val) {
                        obj[i].checked = true;
                        break;
                    }
                }
            } else {
                obj.value = val;
            }
        }
    } else {
        //try {
            //obj.value;    
        //} catch (e) {
            //alert(e.number);
        //}
        
    }
}


/*
 *	Title : $c
 * @author gggl.ko
 * @Description : checkbox È¤Àº ¶óµð¿À ¹öÆ°ÀÇ ¼±ÅÃ°ª ¸®ÅÏ
 * @ µÎ¹øÂ° ÆÄ¶ó¹ÌÅÍ°¡ ÀÖ´Ù¸é, ÇØ´ç °ªÀÎ °æ¿ì Ã¼Å©¸¦ ÇÔ
 */
function $c(obj,val) {
    //°³º°´ÜÀÏ°³Ã¼°¡ ¾Æ´Ñ, º¹¼öÀÏ¼öµµ ÀÖÀ¸¹Ç·Î, ÇØ´ç ÀÌ¸§À¸·Î °³Ã¼ Àç¼³Á¤ÇÔ
    var obj = obj;
    var rtn="";

    if (typeof obj != "undefined") {
        if (isNaN(obj.length) == true) {

            // ÀÔ·ÂÀÌ¶ó¸é
            if (typeof val != "undefined") {
                if (obj.value == val) {
                    obj.checked = true;
                }
            } else {
                if (obj.checked == true) {
                    rtn = obj.value;
                }
            }
        } else {
            
            for (var j = 0; j < obj.length; j++) {
                try {
                
                    // ÀÔ·ÂÀÌ¶ó¸é
                    if (typeof val != "undefined") {    
                            
                        if (obj[j].value == val) {

                            obj[j].checked = true;
                        }
                        
                    } else {

                        if (obj[j].checked == true) {

                            if (rtn == "") {
                                rtn = obj[j].value;
                            } else {
                                rtn = rtn + "," + obj[j].value;
                            }
                        }
                    }
                }catch (e){
                    alert(e.message);
                }
            }
        }
    }
	return rtn;
}
/*
 *	Title : $n
 * @author gggl.ko
 * @Description : document.getElementByName(element);
 */
function $n(obj) {
	return document.getElementByName(obj);
}

// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*
 * Title : AJAX
 * @author gggl.ko
 * @Description : prototype ÀÇ AJAX ¸¦ ¿î¿ë
 */

var $ajax = {
    //encoding : nvl(GB.encoding,"euc-kr")
	encoding : "euc-kr"
	,method : "post"
}

/**
* Title : AJAXExec
* @author gggl.ko
* @Description : prototype ÀÇ AJAX ¸¦ ¿î¿ëÇÑ´Ù.
*/
$ajax.url = function (UrlEx, method) {
    var UrlArr = UrlEx.split("?");
    var Param = "";

    var Url = UrlArr[0];
    if (UrlArr.length > 1) {
        Param = UrlArr[1];
    }
	return this.text(Url, Param, method);
}

/**
* Title : AJAXExec
* @author gggl.ko
* @Description : prototype ÀÇ AJAX ¸¦ ¿î¿ëÇÑ´Ù.
*/
$ajax.exec = function (Url,Param, method) {
	return this.text(Url, Param, method);
}

/*
 * AJAX ÇØ¼­ text ·Î ¸®ÅÏ - ¸Þ¼Òµå ±âº»Àº Æ÷½ºÆ®, ÁÖ¸é post
 */
$ajax.text= function (UrlEx, Param, method) {
    
    var Url;

    if (UrlEx.split("?").length > 1) {
        var UrlArr = UrlEx.split("?");
        
        method = Param;
        Url = UrlArr[0];
        if (UrlArr.length > 1) {
            Param = UrlArr[1];
        }
        
    } else {
        Url = UrlEx;
    }

	var _Rtn = "";
	new Ajax.Request(
		Url,
		{
			method	: nvl(method,this.method),
			asynchronous: false,
			parameters	: nvl(Param),
			encoding	: this.encoding,
			onComplete	: function(OriRuquest) { _Rtn = OriRuquest.responseText; }
		}
	);
	return _Rtn.trim();
}

/*
 * AJAX ÇØ¼­ text ·Î ¸®ÅÏ - ¸Þ¼Òµå ±âº»Àº Æ÷½ºÆ®, ÁÖ¸é post
 */
 $ajax.alert = function (Url, Param, method) {
    if (arguments.length == 1) {
        var rtn = this.url(Url);
    } else {
        var rtn = this.text(Url, Param, method);
    }
    
	alert(rtn);
    return false;
}

/* confirm ¼ö¶ô ÈÄ ÁõÀÎ */
$ajax.confirm = function (msg,Url,Param,method) {
    if (confirm(msg) == true) {
        return this.alert(Url,Param,method);
    }
    return false;
}

/*
 * AJAX ÇØ¼­ XML ·Î ¸®ÅÏ
 */
$ajax.xml = function (Url, Param, method) {
	var _Rtn = "";
	new Ajax.Request(
		Url,
		{
			method	: nvl(method,"get"),
			asynchronous: false,
			parameters : nvl(Param),
			encoding : this.encoding,
			onComplete : function(OriRuquest) { _Rtn = OriRuquest.responseXML; }
		}
	);
	return _Rtn;
}

/*
 * AJAX ÇØ¼­ JSON ·Î ¸®ÅÏ
 */
$ajax.json = function (Url,param, method) {
	// json °³Ã¼¸¦ Äõ¸®½ºÆ®¸µ Çü½ÄÀ¸·Î º¯°æÇÕ´Ï´Ù.
	var rtn = $ajax.exec(Url, nvl(param), nvl(method,"get"));
	try {
        return nvl(eval("("+rtn+")"));
    } catch (e) {
        debug(e);
        return rtn;
    }
}

/**
 * JSON °ü·Ã Object
 *
 */
var $json = {
    jsUrls : document.getElementsByTagName("script")    // ÀçÈ£Ãâ ÇØµµ ÃÖÃÊ È£ÃâÇÑ ¹è¿­ ´ã±âµµ·Ï ¼³Á¤ÇØ¾ßÇÔ...
}

$json.vali = function (str) {
    return eval("("+str+")");
}

$json.setJsParam = function (url) {
    for (var i=0;i < this.jsUrls.length; i++ ) {
        var s = this.jsUrls[i].src;
        if (s.indexOf(url) > -1) {
            var qs = s.split(url + "?");
            // Çö ÆÄÀÏÀÌ url (url.js) ÀÌ¹Ç·Î ´ç¿¬È÷ src °¡ split µÈ´Ù.
            var qsVar = qs[1].trim();
            var rtn = eval("("+qsVar.replaceAll("%27","'")+")");
            break;
        }
    }
    return rtn;
}

/*
 * json Å¸ÀÔ ÅÛÇÃ¸´ Çü½ÄÀ¸·Î html ÇÏ¿© ¸®ÅÏ
 * @param : json ¸®½ºÆ®, html ÅÛÇÃ¸´ - #{JSON(0)} -> json[0] À¸·Î ¸®ÅÏµÇ´Â °ÅÀÓ.
 * 
 */
$json.html = function(jsonList, tpl) {

        var list = jsonList;
        var rtn = "";
        
        if (list.length > 0) {        
            for (var i=0;i<list.length; i++) {
                // ¾Æ³ö Á¤±Ô½Ä °Ì³»ºý¼¼
                var tpl2 = tpl.replace(eval("/#\{+[JSON(0-9)]+\}/gi"), list[i][1]);
                rtn = rtn + tpl2;
            }
        } else {
            // ¾ÆÁ÷ È®ÀÎÇÏÁö ¾ÊÀ½. ´ÜÀÏÀÎ°æ¿ì È®ÀÎÇØºÁ¾ßÇÔ.
            var tpl2 = tpl.replace(eval("/#\{+[JSON(0-9)]+\}/gi"), list[1]);
            rtn = rtn + tpl2;
        }
        return rtn;
}


/*
 * event Object
 */
$event = {}



// ------------------- function extend ------------------------------------------------------------------------------------------------------

/**
 * °¡¿îµ¥·Î »õÃ¢ ¶ç¿ì±â
 * @param : url -> °æ·Î, wname -> À©µµ¿ì¸í, width -> °¡·Î, height -> ¼¼·Î, scrl -> ½ºÅ©·ÑÇ¥½Ã¿©ºÎ
 * window.openCenter
 */
window.openCenter = function(url, wname, width, height, scrl) {
	var winl = (screen.width - width) / 2;
    var wint = (screen.height - height) / 2;
    if (scrl == null) {
        var scroll = "no";
    } else {
        var scroll = "yes";
    }
	window.open(url, wname, "left=" + winl + ", top=" + wint + ", scrollbars=" + scroll + ", status=yes, resizable=no, width=" + width + ", height=" + height);
}



/**
 * $lib
 * ±âÅ¸ lib
 */
$lib = {

    printObj : function(objT,w,h,css) {
                
                var obj = document.getElementById(objT);

				var view = new String();
                
                if (css == undefined) {
                    css = "/common/css/global.css";
                }

				if (w == undefined) {
						w = 700;
				}
				if (h == undefined) {
						h = 400;
				}

				newwin = window.open("", "printE", "width="+w+", height="+h+", top=10, left=10, scrollbars=yes");
				view = obj.innerHTML;

                newwin.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
                newwin.document.write('<html xmlns="http://www.w3.org/1999/xhtml">');
                newwin.document.write('<head>');
                newwin.document.write('<title>'+document.title+"</title>");
                newwin.document.write('<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=euc-kr" />');
                newwin.document.write('<meta http-equiv="Content-Script-Type" content="text/javascript" />');
                newwin.document.write('<meta http-equiv="Content-Style-Type" content="text/css" />');
                newwin.document.write('<meta http-equiv="X-UA-Compatible" content="IE=edge" />');

                newwin.document.write('<link type="text/css" rel="stylesheet" href="'+css+'"  />');
                newwin.document.write('</head>');
                newwin.document.write('<body>');
				newwin.document.write(view);	
                newwin.document.write('</body>');
                newwin.document.write('</html>');

				//setTimeout("newwin.close();", 100);
				newwin.history.go(0);
				newwin.window.print();
	}

	,nowZoom : 100 // ÇöÀç
	,maxZoom : 200 // ÃÖ´ë
	,minZoom : 100 // ÃÖ¼Ò
	,zoom : function(mark,obj) {

        if (obj == undefined) {
            obj = "wrapper";
        }

		if (mark == "+") {
			if (this.nowZoom < this.maxZoom) {
				this.nowZoom += 25;
			} else {
				return;
			}

			$(obj).style.zoom = this.nowZoom + "%";
		}

		if (mark == "-") {
			if (this.nowZoom > this.minZoom) {
				this.nowZoom -= 25;
			} else {
				return;
			}

			$(obj).style.zoom = this.nowZoom + "%";
		}
	}

	
}


$img = {

    /**
     * ÀÌ¹ÌÁö popup È®´ë
     * @param : °æ·Î, ³ÐÀÌ, ³ôÀÌ
     */
	//
	imgPop : function (v) {

        img = new Image();
		img.src=v;
        

		var width=img.width + 16; //ÀÌ¹ÌÁö ³Êºñ°ª
		var height=img.height; //ÀÌ¹ÌÁö ³ôÀÌ °ª
        
		if (screen.width <= width) {
			width = screen.width;
		}

		if (screen.height <= height) {
			height = screen.height - 100;
		}
    
        var attr ="width="+width + ",height="+height;
		var mm = window.open("", "IMGVIEW", "width=" + width + ", height=" + height + ", scrollbars=yes, top=0, left=0");
		var doc = "<html>\n"
				+ "	<head>\n"
				+ "		<title>ÀÌ¹ÌÁö È®´ë</title>\n"
				+ "		<meta http-equiv=\"Content-Type\" content=\"text/html; charset=euc-kr\" />\n"
				+ "	</head>\n"
				+ "	<body style=\"margin:0; cursor:pointer;\" onclick=\"self.close();\">\n"
				+ "		<img src=\"" + v + "\">\n"
				+ "	</body>\n"
				+ "</html>";

        //        <html><body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>                                                                                                    
        //        <table height='100%' cellpadding=0 cellspacint=0 border=0 align=center valign=middle>                                                                                         
        //        <tr><td height='27'>                                                                                                                                                          
        //        <table cellpadding='0' cellspacing='0' style='background:url(/images/pop_zoom_01_bg.gif) repeat-x;'><tr>                                                                      
        //        <td><a href=\"javascript:,print();\"><img src='/images/pop_zoom_01.gif' style='border:0px;'></a></td>                                                                         
        //        <td width='100%'></td>                                                                                                                                                        
        //        <td><img src='/images/pop_zoom_02.gif'></td>                                                                                                                                  
        //        </tR></table>                                                                                                                                                                 
        //        <tr><td valign='top'><div ='popImg'><img alt='ÀÌ¹ÌÁö¸¦ Å¬¸¯ ÇÏ½Ã¸é ÇöÀçÃ¢À» ´Ý½À´Ï´Ù' src=" + img.src + " style='cursor:pointer;'" + " onClick='self.close()'                 
        //        </div><div style='margin-top:3px;text-align:center;width:100%;'><img src='/images/pop_zoom_close.gif' style='cursor:pointer;' onclick='self.close();'></div></td></tr></table>
        //        <body><html>

		mm.document.write(doc);
	}


    /*
	 * @Description : ÀÌ¹ÌÁö »çÀÌÁî ½ÌÅ©
	 * @Author : 2008-11-28 / gggl.ko
	 * @Param : ÇØ´ç ÀÌ¹ÌÁö °´Ã¼, ¿øÇÏ´Â ÃÖ´ë ³ÐÀÌ, ¿øÇÏ´Â ÃÖ´ë ³ôÀÌ
	 */
	,sizeSync : function (obj,w,h) {

		var wUpdate = false;
		if (w > 0) {
			var oriW = obj.width;
			obj.style.width = w;

			if (oriW < w) {
				obj.style.width = oriW;
			} else {
				if (obj.style.width == null) obj.style.width = w;
				wUpdate = true;
			}
		}

		// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

		if (h > 0) {
			if (obj.height > h) {
				// ÀÌ¹Ì °¡·Î¸¦ º¯°æÇÑ »óÈ²ÀÌ¶ó¸é °¡·Î null Ã³¸®
				if (wUpdate == true) obj.style.width = null;
				obj.height=h;
				// obj.style.height=h;
			}
		}
	}

    /* ¹Ì¸®º¸±â¿¡ ¼ÂÆÃÇÒ ÀÌ¹ÌÁö´Â »ý¼ºµÇ¾î ÀÖ¾î¾ßÇÑ´Ù. */
    ,imgPreview : function(preViewer,thisObj,w,h) {

        if(!/(\.gif|\.jpg|\.jpeg|\.png)$/i.test(thisObj.value)) { 
            alert("ÀÌ¹ÌÁö Çü½ÄÀÇ ÆÄÀÏÀ» ¼±ÅÃÇÏ½Ê½Ã¿À"); 
            return; 
        }
        try {
            document.getElementById('preViewImg').style.display="none";    
        } catch (e) {
        }
        
        preViewer = (typeof(preViewer) == "object") ? preViewer : document.getElementById(preViewer);
        
        var ua = window.navigator.userAgent;

        if (ua.indexOf("MSIE 8") > -1) {
            thisObj.select();

            var selectionRange = document.selection.createRange();
            var selectionText = selectionRange.text.toString();

            
            preViewer.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='file://" + selectionText +"', sizingMethod='scale')";
            thisObj.blur();
        } else if (ua.indexOf("MSIE 7") > -1) {
            preViewer.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='file://" + thisObj.value +"', sizingMethod='scale')";
        } else {
            preViewer.innerHTML = "";
            var W = preViewer.offsetWidth;
            var H = preViewer.offsetHeight;
            var tmpImage = document.createElement("img");
            preViewer.appendChild(tmpImage);

            tmpImage.onerror = function () {
                return preViewer.innerHTML = "";
            }

            tmpImage.onload = function () {
                if (this.width > W) {
                    this.height = this.height / (this.width / W);
                    this.width = W;
                }
                if (this.height > H) {
                    this.width = this.width / (this.height / H);
                    this.height = H;
                }
            }
            if (ua.indexOf("Firefox/3") > -1) {
                var picData = thisObj.files.item(0).getAsDataURL();
                tmpImage.src = picData;
            } else {
                tmpImage.src = "file://" + thisObj.value;
            }
        }
    }
}


