/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Global ¿µ¿ª
// inetmgr¿¡¼­ °ü¸®µÇ´Â wwwroot/aspnet_client ·çÆ® ¹Ø¿¡  NeoFramework_web_ui Æú´õ»ý¼º ±× ¾Æ·¡¿¡ 1_0_0_0 Æú´õ»ý¼º 
//   ÇöÀç ÆÄÀÏ(TextBox.js)À» º¹»çÇÑ´Ù.
// <asp:TextBox   --> <Neo1:NeoTextBox ·Î º¯°æ
/////////////////////////////////////////////////////////////////////////////////////////////////////////
var MSG_INVALIDNUMBER = "À¯È¿ÇÑ ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù.";
var SUCCESS = 0;
var ERR_REQUIRED = 1;
var ERR_FORMAT = 2;
var ERR_DATE = 10;
var ERR_YY = 11;
var ERR_MM = 12;
var ERR_DD = 13;

var MSG_ERR010 = "ÇÊ¼öÀÔ·ÂÀÔ´Ï´Ù.";
var MSG_ERR020 = "Àß¸øµÈÀÔ·ÂÀÔ´Ï´Ù.";
var MSG_ERR030 = "³¯Â¥ÀÔ·ÂÀÌ Àß¸øµÇ¾ú½À´Ï´Ù.[YYYY-MM-DD]";

var MSG_ERR100 = "ÁöÁ¤µÇÁö ¾ÊÀº ¿¡·¯ÀÔ´Ï´Ù.";

var TYPE_NONE = "0";
var TYPE_MONEY = "1";
var TYPE_NUMBER = "2";
var TYPE_DATE = "3";
var TYPE_MASK = "4";

var MINUS = '-'; 

////////////////////////////////////////////////////////////////////////////////////////////////////////
// Mask ÀÚµ¿ÀÔ·ÂÇØÁÖ´Â ÇÔ¼ö
//- str : ÅØ½ºÆ®¹Ú½ºÀÇ °ª
//- textbox : ÅØ½ºÆ®¹Ú½º Æ÷ÀÎÅÍ
//- loc : ±¸ºÐÀÚ¸¦ »ðÀÔÇÒ À§Ä¡ÀÇ Ç¥Çö½Ä (¿¹. '4,7' ==> 2003-11-11 Çü½Ä)
//- delim : »ðÀÔÇÒ ±¸ºÐÀÚ ( ¿¹. '-' )
/////////////////////////////////////////////////////////////////////////////////////////////////////////
function mask(str,textbox,loc,delim){
var locs = loc.split(',');

for (var i = 0; i <= locs.length; i++){
	for (var k = 0; k <= str.length; k++){
	 if (k == locs[i]){
	  if (str.substring(k, k+1) != delim){
	    str = str.substring(0,k) + delim + str.substring(k,str.length)
	  }
	 }
	}
 }
textbox.value = str
}
//
///////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// ÇÔ¼ö¸í :  isNum (v)
// ³»  ¿ë : ÀÔ·ÂÀÌ ¼ýÀÚÀÓÀ» °Ë»çÇÑ´Ù.
  function isNum (v){
		v = v.toString();
		if ( v.charAt(0) == '-' )
		{
			v = v.replace(/-/g, "");
		};
		v = v.replace(/./g, "");
    return (v.toString() && !/\D/.test(v));  
  }  
//
///////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////////////
// ÅØ½ºÆ®¹Ú½º¿¡ Æ÷Ä¿½º°¡ µé¾î°¬À» ¶§ ½ÇÇàÇÒ ÇÔ¼ö
/////////////////////////////////////////////////////////////////////////////////////////////////////////
function RestoreStyle()
{
	var ctrl = event.srcElement;
	if ( ctrl != undefined )
	{
		ctrl.style.color = "";
	}
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////
// »óÇÑ°ª°ú ÇÏÇÑ°ªÀ» ÁöÁ¤½Ã ¹üÀ§¿¡ ¸ÂÁö ¾ÊÀ» °æ¿ì ÁöÁ¤ÇÑ »ö±ò·Î ÅØ½ºÆ® º¯°æ
//- max : »óÇÑ°ª
//- min : ÇÏÇÑ°ª
//- color : ¼ýÀÚ°¡ À¯È¿ÇÏÁö ¾ÊÀ» °æ¿ì ÅØ½ºÆ® »ö±ò
/////////////////////////////////////////////////////////////////////////////////////////////////////////
function ValidateLimitValue(max, min, color, valid)
{
	var maxValue = parseFloat(max);		
	var minValue = parseFloat(min);			
	
	var inputCtrl = event.srcElement;
	
	if ( inputCtrl != undefined)
	{			
		
		//alert ( inputCtrl.value == "" );
		if ( inputCtrl.value == "") return;				
			
		var inputValue = inputCtrl.value; //parseFloat(RoundFloat(inputCtrl.value, valid));	
		
		var validResult = false;
		
		if ( ! isNaN(inputValue) )
		{
			if ( maxValue == '' && minValue == '')
			{
				return;												
			} 
			else if ( maxValue == '')
			{	
				validResult = inputValue >= minValue;						
			}
			else if ( minValue == '' )
			{
				validResult = inputValue <= maxValue;				
			}
			else
			{
				validResult = !( inputValue < minValue || inputValue > maxValue );			
			}
			
			if ( !validResult )
			{						
					inputCtrl.style.color = color;
				//	inputCtrl.style.fontWeight = "bold";
							
					//alert("ÀÔ·ÂµÈ °ªÀº " + min + "°ú " + max +" »çÀÌÀÇ °ªÀÌ¾î¾ß ÇÕ´Ï´Ù.");
					//inputCtrl.focus();
			}
			else
			{
				inputCtrl.style.color = "";
				//inputCtrl.style.fontWeight = "";
															
			}		
			inputCtrl.value = FormatValid(inputValue, valid);
		}
		else
		{
			alert(MSG_INVALIDNUMBER);
			inputCtrl.focus();
			inputCtrl.value = "";
		}
	}		
}

function FormatValid(value, valid)
{
	value = value.toString();
	 
	//alert(value);
	// ¼Ò¼öÁ¡ ÀÌÇÏÀÇ ¼ö°¡ ¿ø·¡ À¯È¿¼ýÀÚº¸´Ù ÀûÀ» °æ¿ì 0 À» Ã¤¿öÁØ´Ù.						
			if ( valid != '' ) // À¯È¿ÀÚ¸®°¡ ÁöÁ¤µÇ¾îÀÖÀ» °æ¿ì
			{
				var valArray = value.split(".");
				var isFloat =  (value.indexOf(".") != - 1);
				var figureLength = 0;
				if ( valArray.length > 1 )
				{
					figureLength = valArray[1].length;					
				}
				
				//alert(figureLength);
				
				if ( figureLength == parseInt(valid) )
				{
					return value;
				}
				
				if ( parseInt(valid) > 0 ) // À¯È¿ÀÚ¸®¼ö°¡ 0º¸´Ù Å¬ ¶§
				{
					if (!isFloat) // ¼Ò¼ýÁ¡ÀÌ ¾øÀ¸¸é
					{
						value = value + '.';											
					}
					for( i = 0; i < parseInt(valid) - figureLength; i++)
					{
						value = value + '0';
					}
					//alert(value);										
				}
			}
			return value;
}


///////////////////////////////////////////////////////////////////////////////
// ÇÔ¼ö¸í :f_all_format_remove()
// ³»  ¿ë : ¸ðµç ÀÔ·Â Æ÷¸äÀ» ¾ø¾Ø´Ù.
// Event : OnFocus½Ã È£ÃâµÇ´Â ÇÔ¼öÀÌ´Ù.
// Object : Input

function f_remove_format(ctrl)
{
  switch(ctrl.iType){

		case TYPE_MONEY :
      case TYPE_NUMBER : 
                      // ctrl.value = ctrl.value.replace(/(\,|\-)/g,""); 
                      ctrl.value = ctrl.value.replace(/(\,)/g,""); // - ºÎÈ£´Â ¾ø¾ÖÁö ¾Ê´Â´Ù.
                       
                       break;
      case TYPE_NONE:
      case TYPE_MASK:
						break;    
      default :                 
                       ctrl.value = ctrl.value.replace(/(\,|\.|\-)/g,""); 
                       break;
  }
}

///////////////////////////////////////////////////////////////////////////////
// ÇÔ¼ö¸í :f_format()
function f_format()
{	  
	var isNegative= false;
	if ( event.srcElement.value.charAt(0) == MINUS )
	{
		isNegative = true;
	}
  switch(event.srcElement.iType){

  case TYPE_MONEY : 
				
                   var sMoney = event.srcElement.value.replace(/,/g,"");
                   if ( isNegative ) 
                   {
						sMoney = sMoney.replace(/-/g, "");
                   }
                  // alert(sMoney);
                   var tMoney="";
                   var i;
                   var j=0; 
                   var tLen = sMoney.length;

                   if (sMoney.length <= 3 ) return sMoney;

                  for(i=0;i<tLen;i++){
                      if (i!=0 && ( i % 3 == tLen % 3) )     tMoney += ",";
                      if(i < sMoney.length ) tMoney += sMoney.charAt(i);
                  }
 
                   event.srcElement.value = isNegative ? MINUS + tMoney :tMoney;
                   break;
  case TYPE_NUMBER : 
                   var sMoney = event.srcElement.value.replace(/(\,)/g,""); 
                    if ( isNegative ) 
                   {
						sMoney = sMoney.replace(/-/g, "");
                   }

                   if ( sMoney.length <= 2 ) return sMoney;

                   var fir_sMoney = ""; 
                   var sec_sMoney = "";
                   var flag= true;
                  for(i=0;i<sMoney.length;i++){
                      if('.' == sMoney.charAt(i)){
                         flag= false;
                         continue;
                      }
                      if(flag==true)
                          fir_sMoney +=sMoney.charAt(i);
                      else
                          sec_sMoney +=sMoney.charAt(i);
                  }
                   var tMoney="";
                   var i;
                   var j=0; 
                   var tLen =fir_sMoney.length;
                   
					if ( sec_sMoney.length > 0 )
					{
						sec_sMoney = "." + sec_sMoney;
					}

                   if (fir_sMoney.length <= 3 ) return fir_sMoney + sec_sMoney;
                   for(i=0;i<tLen;i++){
                       if (i!=0 && ( i % 3 == tLen % 3) )     tMoney += ",";
                       if(i < fir_sMoney.length ) tMoney += fir_sMoney.charAt(i);
                   }
                   event.srcElement.value = (isNegative ? MINUS + tMoney :tMoney) + sec_sMoney;
                   break;
  case TYPE_DATE : 
				   var value;
				   if ( event.srcElement.getAttribute("mask") != null )
				   {
						value = f_format_mask(	event.srcElement.value, event.srcElement.getAttribute("mask") );			
				   }
				   else
				   {
						value = f_format_mask(event.srcElement.value, "9999-99-99");
				   }
				   event.srcElement.value = value;
                   
                   break;
  case TYPE_MASK :                    
                   event.srcElement.value = f_format_mask(event.srcElement.value, event.srcElement.getAttribute("mask"));
                   break;
  }
}

///////////////////////////////////////////////////////////////////////////////
// ÇÔ¼ö¸í :f_format_mask()
// ³»  ¿ë : ³¯Â¥ÀÔ·Â Æ÷¸äÀ» ÀÚµ¿º¯°æÇÑ´Ù.
// Event : KeyPress
// Object : Input
function f_format_mask( str, mask){

 var sStr = str.replace( /(\$|\^|\*|\(|\)|\+|\.|\?|\\|\{|\}|\||\[|\]|-|:)/g,"");
 var tStr="";
 var i;
 var j=0; 
 var tLen = sStr.length +1 ;

 for(i=0; i< sStr.length; i++){
     tStr += sStr.charAt(i);
     j++;
     if (j < mask.length && mask.charAt(j)!="9") tStr += mask.charAt(j++);
 }   
 return tStr;
}
//
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
// ÇÔ¼ö¸í : f_onkeypress()
// ³»  ¿ë : Å°ÀÔ·ÂÀ» Ã³¸®ÇÏ±âÀ§ÇÑ ÇÚµé·¯
// Event : KeyPress
// Object : text
function f_onkeypress(){
  var sFilter ;

  switch(event.srcElement.iType){
     	
    case TYPE_DATE :
    case TYPE_MASK : 	
                     sFilter="[0-9]";
                     break;
    case TYPE_MONEY :
					sFilter = "[0-9-]";
					break;
    case TYPE_NUMBER :  
                     sFilter="[-.0-9]";
                     break;
    case TYPE_NONE :
                     sFilter= event.srcElement.getAttribute("filter");
                     break;
                     
  	
  }	
  //ÇÊÅÍ°¡ ÁöÁ¤µÈ °æ¿ì¸¸ °Ë»çÇÑ´Ù.      
  if(sFilter){    
      var sKey=String.fromCharCode(event.keyCode);    
      var re=new RegExp(sFilter);    
      // Enter´Â Å°°Ë»ç¸¦ ÇÏÁö ¾Ê´Â´Ù.    
      if(sKey!="\r" && !re.test(sKey)) event.returnValue=false;    
      
   }
}    
//
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
// ÇÔ¼ö¸í : f_onfocus()
// ³»  ¿ë : °¢ elementÀÇ focus¸¦ À§ÇÑ ÀÌº¥Æ®ÇÚµé·¯ 
// Event  : onFocus()
// Object : elements
function f_onfocus()
{
  var ctrl =  event.srcElement;
  f_remove_format(ctrl);
  RestoreStyle();
  if(ctrl.select) ctrl.select(); // ¼±ÅÃ
 
}
//
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
// ÇÔ¼ö¸í : f_onblur()
// ³»  ¿ë : °¢ elementÀÇ blur¸¦ À§ÇÑ ÀÌº¥Æ®ÇÚµé·¯ 
// Event  : onBlur()
function f_onblur(max, min, color, valid)
{
	
	switch(event.srcElement.iType)
	{
     	case TYPE_MONEY :
		case TYPE_NUMBER :  
			
		if ( max != '' || min != '' )
		{
			ValidateLimitValue(max, min, color, valid);		
		}
		else
		{			
			if ( event.srcElement.value != '' && valid != '')
			{
				event.srcElement.value = FormatValid(event.srcElement.value, valid); //FormatValid(RoundFloat(event.srcElement.value, valid), valid);
			}
		}
		break;
	}
	//Formatting...
	f_format();  
  
}

function autoFocus_landom(obj1,obj2,len)
{
	var strObj1 = obj1.value;
	var strObj2 = obj2;
 	
 	if(strObj1.length >= len)
 	{
    	strObj2.focus();
	}
}
//
//////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
// ÇÔ¼ö¸í : f_validateMaxLength()
// ³»  ¿ë : MultiLine ÀÏ°æ¿ì MaxLength Validate
// Event : KeyPress
// Object : text
function f_validateMaxLength(){  
  var obj			= event.srcElement;
  var maxLength		= obj.getAttribute("maxlength");
  var val			= obj.value;  
  var valLength		= val.length;
  var tempLength	= 0;
  
	for(i=0; i<valLength; i++) {
		chr = val.charAt(i);
		if (escape(chr).length > 4) {
			tempLength += 2;
		}
		else {
			tempLength++;
		}
	}

	if ( maxLength != '')
	{				
		if ( maxLength * 2 < tempLength )
		{	
			alert('ÀÔ·ÂÁ¦ÇÑÀ» ³Ñ¾ú½À´Ï´Ù.\n\nÃÖ´ë ÇÑ±Û '+ maxLength +'ÀÚ / ¿µ¹® '+ maxLength * 2 +'ÀÚ ÀÌ³»·Î¸¸ ÀÔ·ÂÀÌ °¡´ÉÇÕ´Ï´Ù.');		
			obj.focus();				
		}
	}  
} 
//
///////////////////////////////////////////////////////////////////////////////
