﻿// JavaScript 파일
g_SECUREVERSION = "console.";
g_SITELOCAL = "local.";
g_SecureSitePort = "44306";

function check_number()
{
    if((event.keyCode!=8) && (event.keyCode!=46))   //backspace, delete key 제외
    {        
	    if(!((event.keyCode>47) && (event.keyCode<58)) && !((event.keyCode>95) && (event.keyCode<106)))
	    {	
		    alert("숫자만 입력가능 합니다");
		    event.returnValue = false;
	    }
    }	   
}

// 텍스트 앞뒤의 공백문자를 제거합니다.
function TrimText( orgStr )
{
	var copyStr = "";
	var strIndex;

	// 앞의 공백을 제거합니다.
	for ( strIndex = 0; strIndex < orgStr.length; strIndex ++ ) {
		if ( orgStr.charAt(strIndex) == ' ' ) continue;
		else {
			copyStr = orgStr.substr( strIndex );
				break;
			}
	}

	// 뒤의 공백을 제거합니다.
	for ( strIndex = copyStr.length - 1; strIndex >= 0; strIndex -- ) {
		if ( copyStr.charAt(strIndex) == ' ' ) continue;
		else {
			copyStr = copyStr.substr( 0, strIndex + 1 );
			break;
		}
	}

	return copyStr;
}

function textCounter(field, maxlimit)
{
	var f_len = field.value.length;
	var f_str = field.value;
	var l_one_char="";
	var I_byte=0;
	var li_len=0;
	
	for(var ii=0; ii<f_len;ii++)
	{
      // 한글자추출
      l_one_char = f_str.charAt(ii);

      // 한글이면 2를 더한다.
      if (escape(l_one_char).length > 4){
		I_byte += 2;
	  }else if(l_one_char != '\r'){
		I_byte++;
	  }	
	  
      // 전체 크기가 li_max를 넘지않으면
      if(I_byte <= maxlimit)
      {
         li_len = ii + 1;
      }	  
	}
	 
	if (I_byte > maxlimit)
	{			
		alert('제한된 글자수를 초과하였습니다.');
		field.value = f_str.substr(0, li_len);
	} 
	else
	{
        //document.all.textlimit.innerText = I_byte;
	    var tmp= document.getElementById("textlimit");
	    tmp.innerText = I_byte;
	}

}

function fn_xmldom()
{
    var xmlparam;
    // code for IE
    if (window.ActiveXObject){
        xmlparam=new ActiveXObject("Microsoft.XMLDOM");
        objRoot = xmlparam.createNode(1,"PARAM","");
        xmlparam.appendChild(objRoot);        
    // code for Mozilla, Firefox, Opera, etc.
    }else if (document.implementation && document.implementation.createDocument)
    {
         xmlparam=document.implementation.createDocument("","PARAM",null);         
    }
    else
    {
        alert('Your browser cannot handle this script');
    }  

    return xmlparam;
}

function fn_xmlhttp()
{
    var obj=null;
     // code for IE   
    if(window.ActiveXObject) obj = new ActiveXObject('Microsoft.XMLHTTP');   
    // code for Mozilla, Firefox, Opera, etc.
    else if(window.XMLHttpRequest)  obj = new XMLHttpRequest();
    else {   
        alert('XMLHttpRequest 객체를 생성하지 못했습니다!\n이 사이트의 기능 일부를 사용하지 못할 수 있습니다.');   
    } 
    return obj;
}


function isEmail(s)
{
    return s.search(/^\s*[\w\~\-\.]+\@[\w\~\-]+(\.[\w\~\-]+)+\s*$/g) >= 0;
}

function txtLength(field)
{
	var f_len = field.value.length;
	var f_str = field.value;
	var l_one_char="";
	var I_byte=0;
	var li_len=0;
	
	for(var ii=0; ii<f_len;ii++)
	{
      // 한글자추출
      l_one_char = f_str.charAt(ii);

      // 한글이면 2를 더한다.
      if (escape(l_one_char).length > 4){
		I_byte += 2;
	  }else if(l_one_char != '\r'){
		I_byte++;
	  }			
	}
	return I_byte;	    
}
//////////////////////////////////////////////////
// URL Handle
//////////////////////////////////////////////////
String.prototype.trim = function()
{
  return this.replace(/(^\s*)|(\s*$)/gi, "");
}

String.prototype.replaceAll = function(str1, str2)
{
  var temp_str = "";

  if (this.trim() != "" && str1 != str2)
  {
	temp_str = this.trim();

	while (temp_str.indexOf(str1) > -1)
	{
	  temp_str = temp_str.replace(str1, str2);
	}
  }
  return temp_str;
}

function getHTTPS(siteHost)
{
	var ret = "https://";
	if (typeof(g_SITELOCAL)=="string" && g_SITELOCAL != ""){
		var arr = g_SITELOCAL.split('|');
		for(var i=0; i < arr.length; i++){
			if ( siteHost.indexOf( arr[i].trim() ) > -1 ){	
				ret = "http://";
				break;
			}
		}
	}
	return ret;
}

function getSiteHost(url)
{
	var ret = "";
	var idx = url.indexOf("://");
	if (idx > -1){
		var idx2 = url.substring(idx+3, url.length).indexOf("/");
		if (idx2 > -1){
			ret = url.substring(idx+3, idx2 + (idx+3));
		}else{
			ret = url.substring(idx+3, url.length);
		}
		ret = ret.toLowerCase();
	}
	var removePort = ret.indexOf(":");
	if (removePort > -1 ) {
		ret = ret.substring(0, removePort);
	}
	return ret;
	// (예)
	// 입력 : http://console.ntreev.com/community/free.aspx
	// 출력 : console.ntreev.com
}

function getServiceSite()
{
    var url = window.location;
    url = url.toString();
    
	return ( "http://" + getSiteHost(url) );
	// (예)
	// 입력 : https://console.ntreev.com
	// 출력 : http://console.ntreev.com
}

function getSecureSite()
{
    var url = window.location;
    url = url.toString();
    
	var siteHost = getSiteHost(url);

	return ( getHTTPS(siteHost) + siteHost + getSecureSitePort() );
	// (예1 - HTTPS For Service)
	// 입력 : http://console.ntreev.com/default.aspx
	// 출력 : https://console.ntreev.com 
	// (예2 - HTTP For Test : g_SITELOCAL에 정의)
	// 입력 : http://local.ntreev.com/community/free.aspx
	// 출력 : http://local.ntreev.com
}

function goUrl(strTarget)
{
    var url = '';
    url = getServiceSite();

    document.location = url + strTarget;
}

function goSecureUrl(strTarget)
{
    var sUrl = '';
    sUrl = getSecureSite();

    document.location = sUrl + strTarget;
}

function isLocalSite()
{
    var url = window.location;
    url = url.toString();
    
    return (getSiteHost(url).substring(0,6) == "local.");
}

function getSecureSitePort()
{
    return ( (typeof(g_SecureSitePort) != "undefined") && (g_SecureSitePort != "") && !isLocalSite() ) ? ":" + g_SecureSitePort : "";
}