//======================================================================  
// String 관련 유틸함수 
//======================================================================   


	function LTrim(String)  
	{  
	    var i = 0;  
	    var j = String.length - 1;  
	 
	    if (String == null)  
	            return (false);  
	 
	    for (i = 0; i < String.length; i++)  
	    {  
	        if (String.substr(i, 1) != ' ' &&  
	            String.substr(i, 1) != '\t')  
	                break;  
	    }  
	 
	    if (i <= j)  
	        return (String.substr(i, (j+1)-i));  
	    else  
	        return ('');  
	}  
	 
	
	function RTrim(String)  
	{  
	    var i = 0;  
	    var j = String.length - 1;  
	 
	    if (String == null)  
	        return (false);  
	 
	    for(j = String.length - 1; j >= 0; j--)  
	    {  
	        if (String.substr(j, 1) != ' ' &&  
	                String.substr(j, 1) != '\t')  
	        break;  
	    }  
	 
	    if (i <= j)  
	        return (String.substr(i, (j+1)-i));  
	    else  
	        return ('');  
	}  
	 
	function Trim(String)  
	{  
	    if (String == null)  
	        return (false);  
	 
	    return RTrim(LTrim(String));  
	}  
	
	function ltrim( value ){ 
	   var re = /\s*((\S+\s*)*)/; 
	    return value.replace(re, "$1"); 
	} 
	 
	
	function rtrim( value ){ 
	    var re = /((\s*\S+)*)\s*/; 
	    return value.replace(re, "$1"); 
	} 
	 
	
	function trim( value ){ 
	    return ltrim(rtrim(value)); 
	} 

	function rmSpace(str) {
		var src = new String(str);
		var tar = new String();
		var i, len=src.length;
		for (i=0; i < len; i++) {
			if (src.charAt(i) == ' ')
	            tar += '';
	        else
	            tar += src.charAt(i);
	    }
	    return tar;
	}
	
	function isEmailAddr(email)  
	{  
	   var result = false;  
	   var theStr = new String(email);  
	   var index = theStr.indexOf("@");  
	   if (index > 0)  
	   {  
	       var pindex = theStr.indexOf(".",index);  
	       if ((pindex > index+1) && (theStr.length > pindex+1))  
	            result = true;  
	   }  
	   return result;  
	}  

	function arrayContainsKey(arr, key) {  
	    for (idx = 0; idx<arr.length; idx++) {  
	        if (arr[idx] == key) {  
	            return true;  
	        }  
	    }  
	    return false;  
	}  
	
	
	function check_han(s) {
	   var len = 0 ;
	   if(s == null)
	      return false;
	   for(var i=0; i<s.length; i++) {
	      var c = escape(s.charAt(i)) ;
	      if(c.indexOf('%u') != -1)
	         return true;
	   }
	   return false;
	}
	
	var w = "";
	function open_win(fname, width, height) {
	  if (w!="") w.close();
	  w = window.open(fname, '', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width='+width+',height='+height);
	}
	
	function itemNull(el, msg){
		if (trim(el.value)==""){
			alert(msg);
			el.focus();
			return true;
		}
		return false;
	}
	
    function image_window(img)
    {
        var w = img.tmp_width; 
        var h = img.tmp_height; 
        var winl = (screen.width-w)/2; 
        var wint = (screen.height-h)/3; 

        if (w >= screen.width) { 
            winl = 0; 
            h = (parseInt)(w * (h / w)); 
        } 

        if (h >= screen.height) { 
            wint = 0; 
            w = (parseInt)(h * (w / h)); 
        } 

        var js_url = "<script language='JavaScript1.2'> \n"; 
            js_url += "<!-- \n"; 
            js_url += "var ie=document.all; \n"; 
            js_url += "var nn6=document.getElementById&&!document.all; \n"; 
            js_url += "var isdrag=false; \n"; 
            js_url += "var x,y; \n"; 
            js_url += "var dobj; \n"; 
            js_url += "function movemouse(e) \n"; 
            js_url += "{ \n"; 
            js_url += "  if (isdrag) \n"; 
            js_url += "  { \n"; 
            js_url += "    dobj.style.left = nn6 ? tx + e.clientX - x : tx + event.clientX - x; \n"; 
            js_url += "    dobj.style.top  = nn6 ? ty + e.clientY - y : ty + event.clientY - y; \n"; 
            js_url += "    return false; \n"; 
            js_url += "  } \n"; 
            js_url += "} \n"; 
            js_url += "function selectmouse(e) \n"; 
            js_url += "{ \n"; 
            js_url += "  var fobj      = nn6 ? e.target : event.srcElement; \n"; 
            js_url += "  var topelement = nn6 ? 'HTML' : 'BODY'; \n"; 
            js_url += "  while (fobj.tagName != topelement && fobj.className != 'dragme') \n"; 
            js_url += "  { \n"; 
            js_url += "    fobj = nn6 ? fobj.parentNode : fobj.parentElement; \n"; 
            js_url += "  } \n"; 
            js_url += "  if (fobj.className=='dragme') \n"; 
            js_url += "  { \n"; 
            js_url += "    isdrag = true; \n"; 
            js_url += "    dobj = fobj; \n"; 
            js_url += "    tx = parseInt(dobj.style.left+0); \n"; 
            js_url += "    ty = parseInt(dobj.style.top+0); \n"; 
            js_url += "    x = nn6 ? e.clientX : event.clientX; \n"; 
            js_url += "    y = nn6 ? e.clientY : event.clientY; \n"; 
            js_url += "    document.onmousemove=movemouse; \n"; 
            js_url += "    return false; \n"; 
            js_url += "  } \n"; 
            js_url += "} \n"; 
            js_url += "document.onmousedown=selectmouse; \n"; 
            js_url += "document.onmouseup=new Function('isdrag=false'); \n"; 
            js_url += "//--> \n"; 
            js_url += "</"+"script> \n"; 

        var settings;

        if (g4_is_gecko) {
            settings  ='width='+(w+10)+','; 
            settings +='height='+(h+10)+','; 
        } else {
            settings  ='width='+w+','; 
            settings +='height='+h+','; 
        }
        settings +='top='+wint+','; 
        settings +='left='+winl+','; 
        settings +='scrollbars=no,'; 
        settings +='resizable=yes,'; 
        settings +='status=no'; 


        win=window.open("","image_window",settings); 
        win.document.open(); 
        win.document.write ("<html><head> \n<meta http-equiv='imagetoolbar' CONTENT='no'> \n<meta http-equiv='content-type' content='text/html; charset="+g4_charset+"'>\n"); 
        var size = "이미지 사이즈 : "+w+" x "+h;
        win.document.write ("<title>"+size+"</title> \n"); 
        if(w >= screen.width || h >= screen.height) { 
            win.document.write (js_url); 
            var click = "ondblclick='window.close();' style='cursor:move' title=' "+size+" \n\n 이미지 사이즈가 화면보다 큽니다. \n 왼쪽 버튼을 클릭한 후 마우스를 움직여서 보세요. \n\n 더블 클릭하면 닫혀요. '"; 
        } 
        else 
            var click = "onclick='window.close();' style='cursor:pointer' title=' "+size+" \n\n 클릭하면 닫혀요. '"; 
        win.document.write ("<style>.dragme{position:relative;}</style> \n"); 
        win.document.write ("</head> \n\n"); 
        win.document.write ("<body leftmargin=0 topmargin=0 bgcolor=#dddddd style='cursor:arrow;'> \n"); 
        win.document.write ("<table width=100% height=100% cellpadding=0 cellspacing=0><tr><td align=center valign=middle><img src='"+img.src+"' width='"+w+"' height='"+h+"' border=0 class='dragme' "+click+"></td></tr></table>");
        win.document.write ("</body></html>"); 
        win.document.close(); 

        if(parseInt(navigator.appVersion) >= 4){win.window.focus();} 
    }
    
	function tbox_d(id, rows)
    {
        if (document.getElementById(id).rows - rows > 0)
            document.getElementById(id).rows -= rows;
    }

    function tbox_o(id, rows)
    {
        document.getElementById(id).rows = rows;
    }

    function tbox_i(id, rows)
    {
        if (document.getElementById(id).rows < 200)
	        document.getElementById(id).rows += rows;
    }    		
	