/*
1. GetStringLength(str1)
 - str1 : ¸ðµç À¯È¿ÇÑ ¹®ÀÚ½Ä 
 - ¼³¸í : ½ºÆ®¸²(str1)ÀÇ ¹ÙÀÌÆ® ¼ö¸¦ ¸®ÅÏ 
 - ¹ÝÈ¯°ª : ¹ÙÀÌÆ® ¼ö (int)
 
2. LimitStrLen(obj1, int1)
 - obj1 : ¹ÙÀÌÆ®¼ö¸¦ È®ÀÎÇÏ±â À§ÇÑ Æû ¿ä¼Ò¸í
 - int1 : ½ºÆ®¸²ÀÇ Á¦ÇÑ ¹ÙÀÌÆ® ¼ö
 - ¼³¸í : ½ºÆ®¸²ÀÇ ¹ÙÀÌÆ® ¼ö Á¦ÇÑµÎ±â(¾à°£ÀÇ ¹ö±× ÀÖÀ½)
 - ¹ÝÈ¯°ª : ¾øÀ½. Á¦ÇÑ¹üÀ§ º¸´Ù Å¬ °æ¿ì Alert !!

   LimitStrLen2(obj1, int1)
 - Á¦ÇÑ¹üÀ§º¸´Ù Å¬ °æ¿ì Alert ÈÄ¿¡, false return

 
3. setFocusForLoadingForm(frm1)
 - frm1 : ¸ðµç À¯È¿ÇÑ Æû ¸í
 - ¼³¸í : INPUT ¹Ú½º Áß Æ÷Ä¿½º¸¦ °¡Áú ¼ö ÀÖ´Â °´Ã¼¿¡ Æ÷Ä¿½º¸¦ ÁØ´Ù.
 - ¹ÝÈ¯°ª : ¾øÀ½
 
4. CheckFormValidation(str1, str2, int1, int2, boolean1, boolean2)
 - str1 : Ã¼Å©ÇÒ Æû ¿ä¼Ò¸í(ex:form.txtId)
 - str2 : Ã¼Å©ÇÒ ÆûÀÇ Ãâ·Â¸í(ex:¾ÆÀÌµð)
 - int1 : ±æÀÌ¸¦ Ã¼Å©ÇÒ °æ¿ì ÃÖ´ë ±æÀÌ°ª. ±æÀÌ¸¦ Ã¼Å©ÇÏ´Â °æ¿ì°¡ ¾Æ´Ï¸é 0À¸·Î ÀÔ·Â
 - int2 : Ã¼Å©¹æ½Ä (0:ÀÔ·ÂÃ¼Å©, 1:¿µ¹®Ã¼Å©, 2:¼ýÀÚÃ¼Å©, 3:emailÃ¼Å©, 4:¿µ¹®&¼ýÀÚÃ¼Å©, 5:¿µ¹®&¼ýÀÚ&_ (¾ÆÀÌµð)Ã¼Å©, 6:¿µ¹®&¼ýÀÚ&_&ÇÑ±Û Ã¼Å©, 7:¼ýÀÚÃ¼Å©('-' ºÒ°¡)
 - boolean1 : ÇÊ¼ö ÀÔ·Â»çÇ×¿©ºÎ Ã¼Å©(true:Ã¼Å©, false:ºñÃ¼Å©)
 - boolean2 : ¸Þ¼¼Áö Ãâ·Â¿©ºÎ o(true:alertÃ¢ Ãâ·Â, false:alertÃ¢ Ãâ·Â ¾ÈÇÔ)
 - ¼³¸í : Æû¿¡ ÀÔ·Â µÈ °ªÀÇ À¯È¿¼º °Ë»ç.
 - ¹ÝÈ¯°ª : ¾øÀ½

5. CheckRadioButton(str1, str2)
 - str1 : Ã¼Å©ÇÒ ¶óµð¿À ¹öÆ°¸í(ex:form.rdoCity)
 - str2 : Ã¼Å©ÇÒ ¶óµð¿ÀÀÇ Ãâ·Â¸í(ex:µµ½Ã¸í)
 - ¼³¸í : ¶óµð¿À ¹öÆ°ÀÇ ºó °ª Ã¼Å©.
 - ¹ÝÈ¯°ª : ¾øÀ½
 
6. AlertPrompt(str1, str2)
 - str1 : Æ÷Ä¿½º°¡ ÀÌµ¿µÉ ÆûÀÇ ¿ä¼Ò¸í(ex.form.txtId)
 - str2 : Ãâ·ÂµÉ ¸Þ¼¼Áö
 - ¼³¸í : ¸Þ¼¼Áö ¾Ë¸² ÈÄ Æ÷Ä¿½º.
 
7. checkEmailAddress(str1, boolean1)
 - str1 : Ã¼Å©ÇÒ ÀÌ¸ÞÀÏ ÁÖ¼Ò
 - boolean1 : ¸Þ¼¼Áö Ãâ·Â ¿©ºÎ (true/false)
 - ¼³¸í : ÀÌ¸ÞÀÏ Çü½ÄÀ» Ã¼Å©
 
8. launchCenter(str1, str2, int1, int2, str3)
 - str1 : ÆË¾÷µÉ url 
 - str2 : ÆË¾÷Ã¢ ¸í
 - int1 : ÆË¾÷Ã¢ÀÇ °¡·Î±æÀÌ
 - int2 : ÆË¾÷Ã¢ÀÇ ¼¼·Î±æÀÌ
 - str3 : ±âÅ¸ ÆË¾÷Ã¢ÀÇ Attribute
 - ¼³¸í : ÆË¾÷Ã¢À» ¸ð´ÏÅÍÀÇ ÇÑ°¡¿îµ¥¿¡ À§Ä¡½ÃÅ´
 - ¹ÝÈ¯°ª : ¾øÀ½

9. launchMaxWin() 
 - ¼³¸í : À©µµ¿ì°¡ ¸ð´ÏÅÍÀÇ ÀüÃ¼È­¸éÀ¸·Î À§Ä¡½ÃÅ´
 
10. iSelect(chkFrom, chkTarget)
 - chkFrom : Ã¼Å© È®ÀÎÇÒ Ã¼Å©¹Ú½º °´Ã¼
 - chkTarget : Ã¼Å©µÉ Ã¼Å©¹Ú½º °´Ã¼
 - ¼³¸í : ÀüÃ¼ ¼¿·ºÆ® ÇÏ°Å³ª µð¼¿·ºÆ® ÇÔ
 
11. goPage(form,page)
 - form : submit()ÀÌ ÀÏ¾î³¯ Æû °´Ã¼, currentPage¸¦ hiddenÀ¸·Î °¡Áö°í ÀÖ¾î¾ß ÇÔ.
 - page : ÀÌµ¿ÇÒ ÆäÀÌÁö ¹øÈ£
 - ¼³¸í : page·Î ÀÌµ¿ÇÔ, ÆäÀÌÂ¡¿¡¼­ »ç¿ëµÇ´Â ¸Þ¼Òµå
 
12. iOrder(form, condition, direction, kind)
 - form : submit()ÀÌ ÀÏ¾î³¯ Æû °´Ã¼
 - condition : Á¤·ÄÇÒ ÄÃ·³¸íÀ» °¡Áú °´Ã¼
 - direction : Á¤·Ä ¹æ½ÄÀÌ Á¤ÀÇµÈ °´Ã¼ , ASC È¤Àº DESC¸¦ °¡Áö°í ÀÖÀ½
 - kind : ÀÌ¹ø¿¡ Á¤·ÄÇÒ ÄÃ·³¸í
 - ¼³¸í : ÄÃ·³¸íÀ¸·Î Á¤·ÄÇÔ

13. selectedCount(checkTarget)
 - checkTarget : checkbox °´Ã¼
 - ¼³¸í : checkbox ¼±ÅÃµÈ °¹¼ö¸¦ returnÇÑ´Ù.
 
14. logout()
 - ¼³¸í : ·Î±×¾Æ¿ô½Ã È£ÃâÇÑ´Ù.
 
15. subStrDisp(str,limit)
 - limit : Á¦ÇÑ ¹ÙÀÌÆ® ¼ö
 - ¼³¸í : str°´Ã¼ÀÇ byte°¡ limit¿¡ ´Ù´Ù¸£¸é ÀÚ¸£°í '...'À¸·Î Ç¥½ÃÇÑ´Ù.

16. moneyForm(str)
 - str : ±Ý¾×
 - ¼³¸í : str¿¡ Ãµ ¿ø ´ÜÀ§·Î ,¸¦ »ðÀÔÇÑ´Ù.


*/


// 1.GetStringLength(p_str)
function GetStringLength(p_str)
{
	var c;
	var sLength = 0;

	for(k = 0;k < p_str.length; k++) {
		c = p_str.charAt(k);

		//³»ÀåÇÔ¼ö escape¸¦ ÅëÇØ ±× ±ÛÀÚÀÇ ±æÀÌ°¡ 4º¸´Ù Å©¸é ÇÑ±ÛÀÌ¹Ç·Î 2¸¦ ´õÇÑ´Ù.
		if(escape(c).length > 4)
			sLength += 2;
		//\r\nÀÏ °æ¿ì
		else if (c == '\r' && p_str.charAt(k+1) == '\n')
			sLength += 2;
		else
			sLength++;
	}
	return sLength;
}

// 2.LimitStrLen(objText, maxByte)
function LimitStrLen(objText, maxByte)
{
   	var tmpStrNowByte;
   	var tmpStr = new String(objText.value);
	   	
	tmpStrNowByte = GetStringLength(tmpStr);
				
  	if(tmpStrNowByte > maxByte)
  	{	
  		objText.blur();
  		objText.value = tmpStr.substring(0, tmpStr.length - 1);
  		alert("ÇÑ±ÛÀº " + (maxByte/2) + "ÀÚ, ¿µ¾î´Â " + maxByte + "ÀÚ±îÁö¸¸ ÀÔ·ÂÀÌ °¡´ÉÇÕ´Ï´Ù.");
  		objText.focus();
  	}
}

function LimitStrLen2(objText, maxByte)
{
   	var tmpStrNowByte;
   	var tmpStr = new String(objText.value);
	   	
	tmpStrNowByte = GetStringLength(tmpStr);
				
  	if(tmpStrNowByte > maxByte)
  	{	
  		objText.blur();
  		alert("ÇÑ±ÛÀº " + (maxByte/2) + "ÀÚ, ¿µ¾î´Â " + maxByte + "ÀÚ±îÁö¸¸ ÀÔ·ÂÀÌ °¡´ÉÇÕ´Ï´Ù.");
  		objText.focus();
  		return false;
  	}
  	
  	return true;
}

// 3.setFocusForLoadingForm(p_objForm)
function setFocusForLoadingForm(p_objForm)
{
	for(i=0;i<p_objForm.elements.length;i++)
	{
		if(p_objForm.elements[i].type.toUpperCase() != "HIDDEN")
		{
			p_objForm.elements[i].focus();
			break;
		}
	}
}


//4. CheckFormValidation(p_sInputVar, p_sInputName, p_iMaxLength, p_iCheckType, p_bEssential, p_bMessage)
function CheckFormValidation(p_sInputVar, p_sInputName, p_iMaxLength, p_iCheckType, p_bEssential, p_bMessage)
{
	var iStringLength = GetStringLength(p_sInputVar.value)

	if ( p_bEssential ) {
		if( iStringLength == 0 ) {
			if (p_bMessage) {
				AlertPrompt( p_sInputVar, "ÀÔ·ÂÇÏÁö ¾ÊÀº Ç×¸ñ(" + p_sInputName + ")ÀÌ ÀÖ½À´Ï´Ù.");
			}
			return( false );
		}
		var spacecount = 0;
		
		for( var i = 0; i < iStringLength; i++ ) {
			thisChar = p_sInputVar.value.charAt( i );
			if( thisChar == ' ' ) spacecount++;
		}
		if( spacecount == iStringLength ) {
			if (p_bMessage) {
				AlertPrompt( p_sInputVar, "ÀÔ·ÂÇÏÁö ¾ÊÀº Ç×¸ñ(" + p_sInputName + ")ÀÌ ÀÖ½À´Ï´Ù.");
			}
			return( false );
		}
	}

	if ( p_iMaxLength > 0 ) {
		if( iStringLength > p_iMaxLength ) {
			if (p_bMessage) {
				AlertPrompt( p_sInputVar, "ÀÔ·ÂÇÏ½Å Ç×¸ñ(" + p_sInputName + ")ÀÇ ±æÀÌ(byte)°¡ ÃÊ°úÇÏ¿´½À´Ï´Ù.\n\n" + (iStringLength-p_iMaxLength) + " ÀÚ ÀÌ»óÀ» Áö¿ì½Ã±â ¹Ù¶ø´Ï´Ù.")
			}
			return( false );
		}
	}

//	if (CheckValidTag(p_sInputVar)==false)
//		return( false );

	switch (p_iCheckType) {
		case 1 : // ¿µ¹®¸¸ ÀÔ·Â
			var regEx = new RegExp("^[a-z]+$", "i");
		
			if ( regEx.test(p_sInputVar.value) ) 
			{
				return true;
			}
			else
			{
				if ( p_bMessage )
				{
					window.alert("¿µ¹®ÀÚ¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù" + "\n\n" + "\"" + p_sInputVar.value + "\"");
				}
				p_sInputVar.focus();
				return false;
			}
			break;
		case 2 : // ¼ýÀÚ¸¸ ÀÔ·Â
			var regEx = new RegExp("^[0-9-]+$", "i");
		
			if ( p_sInputVar.value == "" || regEx.test(p_sInputVar.value) ) 
			{
				return true;
			}
			else
			{
				if ( p_bMessage )
				{
					window.alert("¼ýÀÚ¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù" + "\n\n" + "\"" + p_sInputVar.value + "\"");
				}
				p_sInputVar.focus();
				return false;
			}
			break;
		case 3 : // EmailÀÔ·Â
			if ( iStringLength > 0 ) {
				ret = checkEmailAddress(p_sInputVar.value, p_bMessage);
				if ( ! ret ) {
					p_sInputVar.focus();
					return false;
				}
			}
			break;
		case 4 : // ¿µ¹®&¼ýÀÚ¸¸ ÀÔ·Â
			var regEx = new RegExp("^[a-z0-9]+$", "i");
		
			if ( regEx.test(p_sInputVar.value) ) 
			{
				return true;
			}
			else
			{
				if ( p_bMessage )
				{
					window.alert("¿µ¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù" + "\n\n" + "\"" + p_sInputVar.value + "\"");
				}
				p_sInputVar.focus();
				return false;
			}
			break;
		case 5 : // ¿µ¹®&¼ýÀÚ&_ È¸¿ø ¾ÆÀÌµð È®ÀÎ½Ã
			var regEx = new RegExp("^[a-z0-9][a-z0-9_]*$", "i");
		
			if ( regEx.test(p_sInputVar.value) ) 
			{
				return true;
			}
			else
			{
				if ( p_bMessage )
				{
					window.alert("¿µ¹®ÀÚ¿Í ¼ýÀÚ, ¾ð´õ¹Ù¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù" + "\n\n" + "\"" + p_sInputVar.value + "\"");
				}
				p_sInputVar.focus();
				return false;
			}
			break;
		case 6 : // ¿µ¹®&¼ýÀÚ&_&ÇÑ±Û ÀÔ·Â È®ÀÎ½Ã
			var regEx = new RegExp("^[a-z°¡-R0-9][a-z°¡-R0-9_]*$", "i");
		
			if ( regEx.test(p_sInputVar.value) ) 
			{
				return true;
			}
			else
			{
				if ( p_bMessage )
				{
					window.alert("¿µ¹®ÀÚ¿Í ÇÑ±Û, ¼ýÀÚ, ¾ð´õ¹Ù¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù" + "\n\n" + "\"" + p_sInputVar.value + "\"");
				}
				p_sInputVar.focus();
				return false;
			}
			break;		
		case 7 : // ¼ýÀÚ¸¸ ÀÔ·Â
			var regEx = new RegExp("^[0-9]+$", "i");

			p_sInputVar.value = p_sInputVar.value.replace(/-/g, "");

			if ( p_sInputVar.value == "" || regEx.test(p_sInputVar.value) ) 
			{
				return true;
			}
			else
			{
				if ( p_bMessage )
				{
					window.alert("¼ýÀÚ¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù" + "\n\n" + "\"" + p_sInputVar.value + "\"");
				}
				p_sInputVar.focus();
				return false;
			}
			break;	
		default : // Á¦ÇÑ ¾øÀ½
			break;
	}

	return( true );
}

// 5.CheckRadioButton(p_obj, p_objName)
function CheckRadioButton(p_obj, p_objName)
{
	var checkflag = false;

	for(var i=0;i<p_obj.length;i++){
		if(p_obj[i].checked){
			checkflag = true;
			break;
		}
	}

	if(!checkflag)
	{
		AlertPrompt(p_obj[0], p_objName + ' Áß ÇÏ³ª¸¦ Ã¼Å©ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù.');
		return ( false );
	}

	return (true);
}

// 6. AlertPrompt(p_Ctrl, p_sAlertMessage)
function AlertPrompt(p_Ctrl, p_sAlertMessage)
{
    alert(p_sAlertMessage);
    p_Ctrl.focus();
    return;
}

// 7. checkEmailAddress(p_sMailAddress, p_bMessage)
function checkEmailAddress(p_sMailAddress, p_bMessage) 
{
	var regEx = new RegExp("^([a-z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-z0-9_\\-]+\\.)+))([a-z]{2,4}|[0-9]{1,3})(\\]?)$", "i");

	if ( regEx.test(p_sMailAddress) ) 
	{
		return true;
	}
	else
	{
		if ( p_bMessage )
		{
			window.alert("¾Æ·¡ ÀÌ¸ÞÀÏ ÁÖ¼Ò°¡ Àß¸ø µÇ¾ú½À´Ï´Ù" + "\n\n" + "\"" + p_sMailAddress + "\"");
		}
		return false;
	}
}

// 8. launchCenter(url, name, width, height, att)
function launchCenter(url, name, width, height, att) 
{
  var str = "height=" + height + ",innerHeight=" + height;
  str += ",width=" + width + ",innerWidth=" + width;
  if (window.screen) {
    var ah = screen.availHeight - 30;
    var aw = screen.availWidth - 10;

    var xc = (aw - width) / 2;
    var yc = (ah - height) / 2;

    str += ",left=" + xc + ",screenX=" + xc;
    str += ",top=" + yc + ",screenY=" + yc;
    str += "," + att
  }
  return window.open(url, name, str);
}

// 9. launchMaxWin()
function launchMaxWin() 
{
  if (window.screen) {
    var aw = screen.availWidth;
    var ah = screen.availHeight;
    window.moveTo(0, 0);
    window.resizeTo(aw, ah);
  }
}

// 10. iSelect(chkFrom,chkTarget)
function iSelect(chkFrom,chkTarget) {
	if(chkTarget == null) return;	
	else {
		if( chkTarget.length == undefined ) {
			if(chkFrom.checked == true) {
				chkTarget.checked = true
			}
			else {
				chkTarget.checked = false;
			}
		}
		else {
			var size = chkTarget.length;
			if(chkFrom.checked == true) {		
				for(var v=0; v<size; v++)
					chkTarget[v].checked = true;
			}
			else if(chkFrom.checked == false) {		
				for(var v=0; v<size; v++)
					chkTarget[v].checked = false;
			}
		}
	}
}

// 11. goPage(form,page)
/*
function goPage(form,page) {
	form.currentPage.value = page;
	form.submit();
}
*/

function goPage(form, page, act) {
	if (act != null) form.action.value = act;
	form.currentPage.value = page;
	form.submit();
}

// 12. iOrder(form, condition, direction, kind)
function iOrder(form, condition, direction, kind, act) {
	var past_condition = condition.value;
	condition.value = kind;
	if( kind == past_condition ) {
		var past_direction = direction.value;
		if( past_direction == "DESC" ) 
			direction.value = "ASC";
		else
			direction.value = "DESC";
	}
	else {
		direction.value = "ASC";
	}
	
	if (act != null) form.action.value = act;	
	form.submit();
}

// 13. selectedCount(chkTarget)
function selectedCount(chkTarget) {
	
	if(chkTarget == null) {
		return 0;
	} else {
		var size = chkTarget.length;
		if(size == undefined) {
			if(chkTarget.checked == false)
				return 0;
			else {
				return 1;
			}
		}
		else {
			var selected_group_count = 0;
			for(var u=0; u<size; u++) {
				if(chkTarget[u].checked == true) {
					selected_group_count++;
				}
			}
			return selected_group_count;
		}
	}
}

// 14. logout()
function logout() {	
	this.location.href="/com/logout.jsp";
}

// 15. subStrDisp(str,limit)
function subStrDisp(str,limit){
	var kk = substrByte(str,limit);
	document.write(kk);
}

// 16. moneyForm(str)
function moneyForm(str){
        var cnt = 0;
        var temp = "";

        for(i=str.length-1;i>0;i--){
                temp = temp + str.charAt(i);
                cnt++;
                if(cnt==3){
                        temp = temp + ",";
                }
        }
        temp = temp + str.charAt(0);

        str = "";

        for(i=temp.length-1;i>=0;i--){
                str = str + temp.charAt(i);
        }

        return str;
}


function substrByte(str,byte){
	
	var temp = "";
	var temp2 = "";
	
	var strCnt = 0;
	var strTotCnt = 0;
	var ch;
	for (i=0;i<str.length;i++) 
    { 
        ch = escape(str.charAt(i));        //ISO-Latin-1 ¹®ÀÚ¼ÂÀ¸·Î º¯°æ 
        
        strCnt = strCharByte(ch);
        strTotCnt += strCnt;
        
        if( strTotCnt == byte )	{
        	if( str.length > i+1 ){
        		if( strCnt > 1 )	{temp = temp+"...";}
        		else	{temp = temp2+"...";}
        	}
        	else	temp += str.charAt(i);
        	
        	break;
        }
        else if( strTotCnt > byte ){
        	temp = temp2+"...";
        	break;
        }
        
        if( i > 0 )	temp2 += str.charAt(i-1);
        
        temp += str.charAt(i);
    }
    return temp;
	
}

function strCharByte(chStr) 
{ 
		if(chStr.substring(0,3) == '%20'){
			return 1;		//	½ºÆäÀÌ½º´Â ¿µ¹®À¸·Î 1byte Ãë±Þ..
		}
        else if (chStr.substring(0, 2) == '%u') 
        { 
                if (chStr.substring(2,4) == '00') 
                        return 1;
                else 
                        return 2;        //ÇÑ±Û 
        }
        
        else if (chStr.substring(0,1) == '%') 
        { 
                //alert (parseInt(chStr.substring(1,3), 16)); 
                if (parseInt(chStr.substring(1,3), 16)) 
                        return 2;        //ÇÑ±Û 
                else 
                        return 1; 
        }
        else 
        { 
                return 1; 
        } 
} 

//17. autoFocus(strLen, from, to)
function autoFocus(strLen, from, to){
	
	if(from.value.length>=strLen){
		to.focus();
	}
}

// 18. simpleCheck(obj, limit, flag, msg)
function simpleCheck(obj, limit, flag, msg){
	
	if(flag==-1){
		if(obj.value.length < limit){
			alert(msg);
			return true;
		}else{
			return false;
		}
	}else if(flag==1){
		if(obj.value.length > limit){
			alert(msg);
			return true;
		}else{
			return false;
		}
	}else if(flag==0){
		if(obj.value.length == limit){
			alert(msg);
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

// 19. selectOption( obj, val )
function selectOption( obj, val ){
    for(i=0;i<obj.length;i++){
        if(obj.option[i].value == val){
            obj.option[i].selected = true;
            return;
        }
    }
}


// 20. checkEnter( evt )
function checkEnter(evt) {

    evt = (evt) ? evt : event;
    var charCode  = evt.keyCode;

    if (charCode == 13 || charCode == 3) {
        return true;
    } else {
        return false;
    }   
} 