//Name:	Validation.js
//Auth:	hwlee@gfos.com
//Date:	2007.10.15
//Desc:	Æû °ËÁõÀ» À§ÇÑ ¸ðµâ


// ½ºÆäÀÌ½º¸¦ Æ÷ÇÔÇÑ ºóÄ­ °Ë»ç
function fnc_Validation_IsBlank(strVal)
{
	var exp = /^\s*$/;
	return exp.test(strVal);
}

// ÀüÈ­¹øÈ£ Çü½Ä °Ë»ç
function fnc_Validation_IsPhone(strPhone)
{
	var val = strPhone;
	var exp = /^\d{2,3}-\d{3,4}-\d{4}$/;
	return exp.test(strPhone);
}

// ÀÌ¸ÞÀÏ Çü½Ä °Ë»ç
function fnc_Validation_IsMail(strMail)
{
	var blnMail = false;
	var exp = /^.+@.+\..+$/;
	
	if (!fnc_Validation_IsBlank(strMail))
	{
		var val = strMail.toLowerCase();
		blnMail = exp.test(val);
	}
	
	return blnMail;
}

// ³»±¹ÀÎ ÁÖ¹Îµî·Ï¹øÈ£ Çü½Ä °Ë»ç
function fnc_Validation_IsSSN(strSSN)
{
	var val = strSSN;
	var regExt = /^\d{2}[0-1]\d{1}[0-3]\d{1}-[1-8]\d{6}$/;
	var bln = false;
	
	if (!fnc_Validation_IsBlank(val))
	{
		if(regExt.test(val))
		{
			val = val.replace("-","");
			var arr = new Array(2,3,4,5,6,7,8,9,2,3,4,5)
			var sum = 0;
			
			for(i=0; i < arr.length; i++)
			{
				sum += val.charAt(i) * arr[i];
			}
					
			if(((11 - (sum % 11)) % 10) == val.charAt(12))
			{
				bln = true;
			}
		}
		
		if (!bln && fnc_Validation_IsForeignerSSN(strSSN.substring(0, 6) + strSSN.substring(7,14)))
		{
			bln = true;
		}
	}
	return bln;
}

// ¿Ü±¹ÀÎ µî·Ï¹øÈ£ °Ë»ç
function fnc_Validation_IsForeignerSSN(fgn_reg_no)
{
	if ((fgn_reg_no.charAt(6) == "5") || (fgn_reg_no.charAt(6) == "6"))
	   birthYear = "19";
	else if ((fgn_reg_no.charAt(6) == "7") || (fgn_reg_no.charAt(6) == "8"))
	   birthYear = "20";
	else if ((fgn_reg_no.charAt(6) == "9") || (fgn_reg_no.charAt(6) == "0"))
	   birthYear = "18";
	else
		return false;
		
	birthYear += fgn_reg_no.substr(0, 2);
	birthMonth = fgn_reg_no.substr(2, 2) - 1;
	birthDate = fgn_reg_no.substr(4, 2);
	birth = new Date(birthYear, birthMonth, birthDate);
		
	if (birth.getYear() % 100 != fgn_reg_no.substr(0, 2) || birth.getMonth() != birthMonth || birth.getDate() != birthDate) 
		return false;
			
	var sum = 0;
	var odd = 0;
		
	buf = new Array(13);
		
	for (i = 0; i < 13; i++) buf[i] = parseInt(fgn_reg_no.charAt(i));
		odd = buf[7]*10 + buf[8];
		
	if (odd%2 != 0) 
	  return false;

	if ((buf[11] != 6) && (buf[11] != 7) && (buf[11] != 8) && (buf[11] != 9)) 
	  return false;
			
	multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
	for (i = 0, sum = 0; i < 12; i++) 
		sum += (buf[i] *= multipliers[i]);

	sum = 11-(sum%11);
		
	if (sum>=10) sum-=10;

	sum += 2;

	if (sum>=10) sum-=10;

	if ( sum != buf[12]) 
		return false;
	else
		return true;
}



// VBÀÇ Trim ¸Þ¼Òµå
function fnc_Validation_Trim(strVal) 
{ 
	try 
	{ 
		// LTrim
		while (strVal.search(/^\s/) != -1)
		{
			strVal = strVal.replace(/^\s/,""); 
		}
		// RTrim
		while (strVal.search(/\s$/) != -1)
		{
			strVal = strVal.replace(/\s$/,"");
		}
	} 
	catch(ex)
	{ 
		return strVal; 
	}
	
	return strVal; 
}


// ¼ýÀÚ°ªÀÎÁö °Ë»ç
function fnc_Validation_IsNumberic(strNum)
{
	var val = strNum;
	var bln = false;
	var regExp = /[^0-9]/;
	if (!fnc_Validation_IsBlank(val))
	{
		bln = !regExp.test(val);
	}
	return bln;
}

// ÁÖ¹Îµî·Ï Æ÷¸ËÀ» ¸®ÅÏ
function fnc_Validation_MakeSSNFormat(objSSN)
{
	var valSSN = objSSN.value;
	var valHead, valTail
	var regExp = /^\d{2}[0-1]\d{1}[0-3]\d{1}[1-4]\d{6}$/
	
	if (!fnc_Validation_IsBlank(valSSN))
	{
		if(regExp.test(valSSN))
		{
			valSSN = valSSN.substring(0,6) + "-" + valSSN.substring(7,13)
			objSSN.value = valSSN;
		}
	}
	/*else
	{
		alert("ÁÖ¹Îµî·Ï ¹øÈ£¸¦ '-' ¾øÀÌ ¼ýÀÚ·Î¸¸ ÀÔ·ÂÇÏ¼¼¿ä.")
		objSSN.value = ""
		objSSN.focus();
	}*/
}

// ÄÞ¸¶ ±¸ºÐ ±Ý¾× Ç¥½Ã¸¦ ¸®ÅÏ
function fnc_Validation_MakeMonenyFormat(objMoney)
{	
	var valMoney = objMoney.value;
	var valTemp = "";
	var regExp = /^\d{4,}$/;
	if (!fnc_Validation_IsBlank(valMoney))
	{
		if(regExp.test(valMoney))
		{
			//  Ã¹ ÄÞ¸¶ À§Ä¡
			var intFlag = valMoney.length%3
			if(intFlag)
			{
				var valTemp = valMoney.substring(0, intFlag) 
				if (valMoney.length > 3) valTemp += ","
			}
			
			for (var i=intFlag; i < valMoney.length; i+=3) 
			{
				valTemp += valMoney.substring(i, i+3); 
				// ¸¶Áö¸· ÄÞ¸¶¸¦ ¹æÁö Á¶°Ç
				if( i < valMoney.length-3) valTemp += ",";
			}
			
			objMoney.value = valTemp;
		}
	}
}

// ÄÞ¸¶¸¦ »èÁ¦ÇÔ
function fnc_Validation_DeleteCommaFormat(objName)
{
	objName.value = objName.value.replace(",","");
}

// ÄÞ¸¶¸¦ »èÁ¦ÇÑ ¹®ÀÚ¿­À» ¸®ÅÏ
function fncDelComma(strVal)
{
	var MileageUsedPrice = "";
    for(x = 0; x < strVal.length ; x++)
    {
        ch = strVal.substring(x,x+1)
        if( ch != ",")  MileageUsedPrice += ch;
    }	
    return MileageUsedPrice;
}

// ¿µ¹®°ú ¼ýÀÚÀÇ Á¶ÇÕÀÎ°¡¸¦ Ã¼Å©
function fnc_Validation_IsCharNumberic(strVal) // ¿µ¹®/¼ýÀÚ
{
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1abcdefghijklmnopqrstuvwxyz0123456789";
	for (i = 0;  i < strVal.length;  i++)
	{
		ch = strVal.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length)
		{
			return (false);
			break;
		}
	}
	k = strVal.length - 1
	if (strVal.charAt(k) == ".")
		return (false);
		
	return (true);
}

// ¿µ¹®°ú ¼ýÀÚ¿Í Á¶ÇÕÀÎ°¡¿Í !@$%^&* Æ÷ÇÔ¿¡¼­Ã¼Å©
function fnc_Validation_IsCharNumbericspeciality(strVal) // ¿µ¹®/¼ýÀÚ
{
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1abcdefghijklmnopqrstuvwxyz0123456789!@$%^&*";
	for (i = 0;  i < strVal.length;  i++)
	{
		ch = strVal.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length)
		{
			return (false);
			break;
		}
	}
	k = strVal.length - 1
	if (strVal.charAt(k) == ".")
		return (false);
		
	return (true);
}


// ±Ý¾× ¼ýÀÚ¸¦ ÇÑ±Û·Î.. : num_han, ciphers_han, NUM_HAN
function num_han(num)
{
    if ( num == "1" )       return "ÀÏ";
    else if ( num == "2" )  return "ÀÌ";
    else if ( num == "3" )  return "»ï";
    else if ( num == "4" )  return "»ç";
    else if ( num == "5" )  return "¿À";
    else if ( num == "6" )  return "À°";
    else if ( num == "7" )  return "Ä¥";
    else if ( num == "8" )  return "ÆÈ";
    else if ( num == "9" )  return "±¸";
    else if ( num == "½Ê" ) return "½Ê";
    else if ( num == "¹é" ) return "¹é";
    else if ( num == "Ãµ" ) return "Ãµ";
    else if ( num == "¸¸" ) return "¸¸ ";
    else if ( num == "¾ï" ) return "¾ï ";
    else if ( num == "Á¶" ) return "Á¶ ";
    else if ( num == "0" )  return "";
}

function onlyNumber() {
	if((event.keyCode < 48)||(event.keyCode > 57)) {
		event.returnValue = false;
	}			
}

function onlyOneNumber(strValue) {
	if(strValue.length != 0 && event.keyCode == 49)  // 1ÀÌÁö¸¸ ¾ÕÀÚ¸®°¡ 1ÀÌ ¾Æ´Ï¸é ÀÔ·Â X
	 {event.returnValue = false;}
			
	if((event.keyCode < 48)||(event.keyCode > 49)) { // 0,1¸¸ ÀÔ·Â °¡´É	
		event.returnValue = false;
	}	
}
	
function NUM_HAN(num,mode,return_input)
{
	onlyNumber();

    if ( num == "" || num == "0" ) {
        if ( mode == "3" ) {
            return_input.value = "";
        }
        else if ( mode == "4" ) {
			return "";
		}
        return;
    }

    num=new String(num);
    num=num.replace(/,/gi,"");

    var len  = num.length;
    var temp1 = "";
    var temp2 = "";

    if ( len/4 > 3 && len/4 <= 4 ) {
        if ( len%4 == 0 ) {
            temp1 = ciphers_han(num.substring(0,4)) + "Á¶" + ciphers_han(num.substring(4,8)) + "¾ï" + ciphers_han(num.substring(8,12)) + "¸¸" + ciphers_han(num.substring(12,16));
        }
        else {
            temp1 = ciphers_han(num.substring(0,len%4)) + "Á¶" + ciphers_han(num.substring(len%4,len%4+4)) + "¾ï" + ciphers_han(num.substring(len%4+4,len%4+8)) + "¸¸" + ciphers_han(num.substring(len%4+8,len%4+12));
        }
    }
    else if ( len/4 > 2 && len/4 <= 3 ) {
        if ( len%4 == 0 ) {
            temp1 = ciphers_han(num.substring(0,4)) + "¾ï" + ciphers_han(num.substring(4,8)) + "¸¸" + ciphers_han(num.substring(8,12));
        }
        else {
            temp1 = ciphers_han(num.substring(0,len%4)) + "¾ï" + ciphers_han(num.substring(len%4,len%4+4)) + "¸¸" + ciphers_han(num.substring(len%4+4,len%4+8));
        }
    }
    else if ( len/4 > 1 && len/4 <= 2 ) {
        if ( len%4 == 0 ) {
            temp1 = ciphers_han(num.substring(0,4)) + "¸¸" + ciphers_han(num.substring(4,len));
        }
        else {
            temp1 = ciphers_han(num.substring(0,len%4)) + "¸¸" + ciphers_han(num.substring(len%4,len));
        }
    }
    else if ( len/4 <= 1 ) {
        temp1 = ciphers_han(num.substring(0,len));
    }

    for (var i=0; i<temp1.length; i++) {
        temp2 = temp2 + num_han(temp1.substring(i, i+1));
    }

    temp3=new String(temp2);
    temp3=temp3.replace(/¾ï ¸¸/gi,"¾ï ");
    temp3=temp3.replace(/Á¶ ¾ï/gi,"Á¶ ");

    if ( mode == 1 ) {
        alert(temp3 + " ¿ø");
    } else if ( mode == 2 ) {
         return_input.value = "( " + temp3  + "" + document.Form1.ItemType.options[2].text +")";
    } else if ( mode == 3 ) {
        return_input.value = "( " + temp3 + " ¿ø )";
    } else if ( mode == 4 ) {
		return "( " + temp3 + " ¿ø )";
	}
}

function ciphers_han(num)
{
    var len  = num.length;
    var temp = "";

    if ( len == 1 ) {
        temp = num;
    }
    else if ( len == 2 ) {
        temp = num.substring(0,1) + "½Ê" + num.substring(1,2);
    }
    else if ( len == 3 ) {
        temp = num.substring(0,1) + "¹é" + num.substring(1,2) + "½Ê" + num.substring(2,3);
    }
    else if ( len == 4 ) {
        temp = num.substring(0,1) + "Ãµ" + num.substring(1,2) + "¹é" + num.substring(2,3) + "½Ê" + num.substring(3,4);
    }

    num=new String(temp);
    num=num.replace(/0½Ê/gi,"");
    num=num.replace(/0¹é/gi,"");
    num=num.replace(/0Ãµ/gi,"");
    return num;
}

//±Ý¾×¿¡ , Âï±â..
function numchk(num){
    num=new String(num);
    num=num.replace(/,/gi,"");
    return numchk1(num);
}

function numchk1(num){
    var sign="";
    if(isNaN(num)) {
        alert("¼ýÀÚ¸¸ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù");
        
		if (!isNaN(document.forms[0].WantPrice.value.replace(/,/gi,"")))
        {
			if (typeof(document.forms[0].HanWantQuantity)!="undefined")
				document.forms[0].HanWantQuantity.value = "";
			if (typeof(document.forms[0].ShortCmd)!="undefined")
				document.forms[0].ShortCmd.value = "";        
        }
        
        
        return "";
    }
    if(num==0) {
        return num;
    }

    if(num<0){
        num=num*(-1);
        sign="-";
    }
    else{
        num=num*1;
    }
    num = new String(num)
    var temp="";
    var pos=3;
    num_len=num.length;
    while (num_len>0){
        num_len=num_len-pos;
        if(num_len<0) {
            pos=num_len+pos;
            num_len=0;
        }
        temp=","+num.substr(num_len,pos)+temp;
    }
    return sign+temp.substr(1);
}


function fnc_onlyNumber_alert(num , numobj)
{
	if(isNaN(num)) {alert("¼ýÀÚ¸¸ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù"); numobj.value="";numobj.focus(); return "";   }
}

