// Validate email
function isEmail(str) {
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

function isEmailKo(str){
    var i;
    var ch;

	if (f_chk_emailko(str)){
		str = str.substring(0, str.indexOf("@"));
	   
		for (i=0;i<str.length;i++){
			ch = escape(str.charAt(i));
					if (strCharByte(ch) != 2){
							return false;
					}
		}
		return true;
	}else{
		return false;
	}
}

function strCharByte(chStr){
	if (chStr.substring(0, 2) == '%u'){
		if (chStr.substring(2,4) > 0)
			return 1;
		else
			return 2;        //Korean
	}else if (chStr.substring(0,1) == '%'){
		if (parseInt(chStr.substring(1,3), 16) > 127)
				return 2;        //Korean
		else
				return 1;
	}else if(chStr.substring(0,1) < 10){
			return 2 ;
	}else{
			return 1;
	}
}

function f_chk_emailko(str) {
	num = 0;
	num_2 = 0;

	for (var i=0;i<str.length;i++){
	   if (str.charAt(i) == '@')
		   num++;
	   if (str.charAt(i) == ' ')
   		   num_2++;
	}

	if (num != 1)			return false;
	if (num_2 != 0)			return false;

	return true;
}

// Move key
function tabOrder(thisTab,nextTab, thisTabSize) {
    if((event.keyCode == 37) ||
       (event.keyCode == 38) ||
       (event.keyCode == 39) ||
       (event.keyCode == 40) ||
       (event.keyCode == 35) ||  // HOME key
       (event.keyCode == 36) ||  // END key
       (event.keyCode == 13) ||  // Enter key
       (event.keyCode == 229) || // mouse double click
       (window.document.selection.createRange().text.length == thisTabSize)) { 
      return;
    }     
    if (thisTab.value.length == thisTabSize) {
      nextTab.select();
      nextTab.focus();
      return;
    }  
  }

// Limit letters
function calc_strlen(obj, remObj, countstr) {     
	var totalLen, cnt, strCheck, arrCheck, lenOfCheck, lenOfChar;
	strCheck = obj.value
	arrCheck = strCheck.split("")
	totalLen = strCheck.length
	lenOfCheck = 0
	for(cnt=0;cnt<totalLen;cnt++) {
		lenOfChar = escape(arrCheck[cnt])
		lenOfCheck = lenOfCheck + 1
	}
	remObj.value = lenOfCheck
	if (lenOfCheck > countstr) {
		alert(countstr + 'letter(s) over.');
		obj.focus();
		return;
	}
}

// Remove comma
function NonCommaNum(num) {
	num = num + "";
	var out = num.replace(/,/g,"");
	out = parseFloat(out);
	return out;
}

// Insert comma
function commaNum(ele, chkNumber)
{
	var Num = ele.value.replace(/,/g,"");
	ele.value = ele.value.replace(/,/g,"");

	if ( chkNumber == "Y" ) {
		if ( chknum(ele) == false )
			return false;
	}

	//alert(Num);

	Num = (Num+"");
	var indexofdot = Num.lastIndexOf(".");

	var numLeft = Num;
	var numRight = 0;
	if(indexofdot>0)
	{
		numLeft = Num.substring(0, indexofdot);
		numRight = Num.substr(indexofdot+1);
	}

	//alert("["+numLeft+"]["+numRight+"]");

	var commaFlag = numLeft.length%3;
	if(commaFlag) {
		var out = numLeft.substring(0, commaFlag) 
		if (numLeft.length > 3) out += ","
	}
	else var out = ""

	for (var i=commaFlag; i < numLeft.length; i+=3) {
		out += numLeft.substring(i, i+3) 
		if( i < numLeft.length-3) out += ","
	}	

	ele.value = numLeft+"."+numRight;
}

function commaFloat(value)
{
	value = NonCommaNum(value)+"";

	//alert(Num);
	var indexofdot = value.lastIndexOf(".");
	var numLeft = (indexofdot>0)?value.substring(0, indexofdot):value;
	var numRight = (indexofdot>0)?value.substring(indexofdot+1):0;

	//alert("["+value+"]["+numLeft+"]["+numRight+"]["+numLeft.length+"]["+numRight.length+"]["+(numLeft.length%3)+"]");

	var buff = "";
	var commaFlag = numLeft.length%3;
	if(commaFlag>0) {
		buff = numLeft.substring(0, commaFlag);
		if (numLeft.length > 3) buff += ",";
	}

	for (var idx=commaFlag; idx < numLeft.length; idx+=3) {
		//alert(buff);
		buff += numLeft.substring(idx, idx+3);
		//alert(buff);
		if( idx < numLeft.length-3) buff += ",";
	}

	if(indexofdot > 0 && numRight.length==0) numRight+="00";
	if(indexofdot > 0 && numRight.length==1) numRight+="0";
	if(indexofdot > 0) buff += "."+numRight;

	//alert(value + "===" + buff);
	return buff;
}

// Check only number
function chknum(name1) {
	for(i=0;i<name1.value.length;i++){
		if (name1.value.charAt(i)<'0' || name1.value.charAt(i)>'9') {
			alert("Enter only number.") ;
			name1.value="";
			name1.focus() ;
			return false ;
		}
	}
}

// Validate id number
function JuminCheck(ssn1, ssn2){
	var tmp = 0 
	for (i = 0; i <=5 ; i++) { 
		tmp = tmp + ((i%8+2) * parseInt(ssn1.substring(i,i+1))) 
	}     
	for (i = 6; i <=11 ; i++) { 
		tmp = tmp + ((i%8+2) * parseInt(ssn2.substring(i-6,i-5))) 
	}     
	tmp = 11 - (tmp %11) 
	tmp = tmp % 10 	
	
	if (tmp != ssn2.substring(6,7)) { 
		return false;  
	}else{
		return true;  
	}
}

// Foreigner id number check
function check_fgnno(jumin1, jumin2) {
		var fgnno = jumin1+jumin2;
        var sum=0;
        var odd=0;
        buf = new Array(13);
        for(i=0; i<13; i++) {
			buf[i]=parseInt(fgnno.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;
		}

        return true;
}


// Validate compnay id
function CpnumberCheck(num1, num2, num3){
	bizID = num1+num2+num3;
	
	check = false;
	var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1);
	var tmpBizID, i, chkSum=0, c2, remander;

	for (i=0; i<=7; i++) chkSum += checkID[i] * bizID.charAt(i);

	c2 = "0" + (checkID[8] * bizID.charAt(8));
	c2 = c2.substring(c2.length - 2, c2.length);
	chkSum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1));
	remander = (10 - (chkSum % 10)) % 10 ;

	if (Math.floor(bizID.charAt(9)) == remander) 
		check= true;
	return check;
}

// Remove space
function Space_All(str) {
    var index, len

    while(true){
		index = str.indexOf(" ");
		if (index == -1)		break;
		len = str.length;
		str = str.substring(0, index) + str.substring((index+1),len);
    }
    return str;
}

// Year
function writeSelectYear(selYear){
	var today=new Date();
	var toYear = today.getYear();
	var sel = "";
	for (i=toYear; i<=toYear+1; i++){
		if (selYear == i) sel = " selected";
		else sel = "";
		document.writeln("<option value='"+i+"' "+sel+">"+i+"</option>");
	}
}

// Month
function writeSelectMonth(selMonth){
	var sel = "";
	document.writeln("<option value=''>--</option>");
	for (var i=1;i<13;i++){
		if (i < 10)		i="0"+i;
		if (selMonth == i) sel = " selected";
		else sel = "";
		document.writeln("<option value='"+i+"' "+sel+">"+i+"</option>");
	}
}

// Day
function writeSelectDay(selDay){
	var sel = "";
	document.writeln("<option value=''>--</option>");
	for (var i=1;i<32;i++){
		if (i < 10)		i="0"+i;
		if (selDay == i) sel = " selected";
		else sel = "";
		document.writeln("<option value='"+i+"' "+sel+">"+i+"</option>");
	}
}