// BMSCommon.js


// credit card number check
// return true if valid, else return false
function isValidCardNumber(no1,no2,no3,no4) {
	if ( isNaN(no1) || isNaN(no2) || isNaN(no3) || isNaN(no4) ) {
		return false;
	}
	if ( no1.length !=4 || no2.length !=4 || no3.length !=4 || no4.length !=4 ) {
		return false;
	}
	return true;
}

// Email check 
// return true if valid, else return false
function isValidEmail(str) {
    var pos = str.indexOf("@");
    if (pos == -1 || pos == 0)
            return false;

    var value = str.split("@");
    if (value[1].length < 1)
            return false;

    var domain = value[1].split(".");

    if (domain.length < 2 || domain[1].length < 1)
            return false;

	return true;
}

// Jumin number check
// return true if valid, else return false
function isValidJuminNumber(jnum_01, jnum_02) {
    
    /* ¹ýÀÎ¹øÈ£ ¶§¹®¿¡ ¸·À½.
	// Àß¸øµÈ »ý³â¿ùÀÏ °Ë»ç
	b_Year = (jnum_02.charAt(0) <= "2") ? "19" : "20"
	if (! isValidDate8(b_Year + jnum_01)) {
		return false;
	}
	*/
	
	// Ã¼Å©¼¶
	total = 0
	temp = new Array(13)
	for(i=1; i<=6; i++) temp[i] = jnum_01.charAt(i-1)
	for(i=7; i<=13; i++) temp[i] = jnum_02.charAt(i-7)
	for(i=1; i<=12; i++) {
		k = i + 1
		if(k >= 10) k = k % 10 + 2
		total = total + (temp[i] * k)
	}

	last_num = (11- (total % 11)) % 10
/*
	if (last_num == temp[13]) 
		return true;
	else 
		return false;
*/		
// ¿Ü±¹ÀÎ 5, 6
	if (last_num == temp[13]) {
		return true;
	} else {
	    if (temp[7]=='5' || temp[7]=='6') {
	        if ( confirm("ÁÖ¹Îµî·Ï¹øÈ£ Ã¼Å© ¿À·ù. ¿Ü±¹ÀÎÀÎ°Í °°½À´Ï´Ù. ¿À·ù¸¦ ¹«½ÃÇÏ°í ÁøÇàÇÏ½Ã°Ú½À´Ï±î?") ) {
	            return true;
	        }
        }	            
		return false;
    }
}

// yyyymmdd format date string check
// return true if valid, else return false
function isValidDate8(str) {
	if ( isNaN(str) || str.length != 8) {
		return false;
	}

	b_Year  = str.substr(0, 4)
	b_Month = str.substr(4, 2) - 1
	b_Date  = str.substr(6, 2)
	b_sum = new Date(b_Year, b_Month, b_Date)
	if ( b_sum.getYear() % 100 != str.substr(2, 2) 
		|| b_sum.getMonth() != b_Month 
		|| b_sum.getDate() != b_Date) {
		return false;
	}
	return true;
}

// tel number check
// return true if valid, else return false
function isValidTelNumber(no1,no2,no3) {
	if ( isNaN(no1) || isNaN(no2) || isNaN(no3)) {
		return false;
	}
	if ( no1.substr(0,1) != "0" ) {
		return false;
	}
	if ( no1 != "02" && no1.length != 3) {
		return false;
	}
	return true;
}

function isValidTelTotal(tel) {
    if ( isNaN(tel) 
    || tel.substr(0,1) != "0"
    || tel.length < 9
    || tel.length > 12) 
    {   return false; } 
    return true;
}
    
// cellphone nubmer check
// return true if valid, else return false
function isValidPcsNumber(no1,no2,no3) {
	if ( no1.substr(0,2) != '01' ) {
		return false;
	}
	return isValidTelNumber(no1,no2,no3);
}	

// selectAll, deselectAll, reverseAll
// mark all checkbox of form
var boxCount;
var rowCount;
var arrCheckBox = new Array();
function selectAll(form)
{
    boxCount = 0;
    rowCount = form.elements.length;
    for (i=0; i<rowCount; i++) {
        if (form.elements[i].type == "checkbox") {
            arrCheckBox[boxCount] = form.elements[i];
            boxCount++;
        }
    }
    for (i=0; i<boxCount; i++) {
        arrCheckBox[i].checked = true;
    }
}

function deselectAll(form) {
    boxCount = 0;
    rowCount = form.elements.length;
    for (i=0; i<rowCount; i++) {
        if (form.elements[i].type == "checkbox") {
            arrCheckBox[boxCount] = form.elements[i];
            boxCount++;
        }
    }
    for (i=0; i<boxCount; i++) {
        arrCheckBox[i].checked = false;
    }
}

function reverseAll(form) {
    boxCount = 0;
    rowCount = form.elements.length;
    for (i=0; i<rowCount; i++) {
        if (form.elements[i].type == "checkbox") {
            arrCheckBox[boxCount] = form.elements[i];
            boxCount++;
        }
    }
    for (i=0; i<boxCount; i++) {
        arrCheckBox[i].checked = ! arrCheckBox[i].checked;
    }
}

function toggleAll(form) {
    if (isSelectedAll == true) {
       deselectAll(form);
       isSelectedAll = false;
    } else {
       selectAll(form);
       isSelectedAll = true;
    }
}
    
// Á¤ÇØÁø ¼ýÀÚ¸¸Å­ ÀÔ·ÂÇßÀ»¶§ ´ÙÀ½ ÇÊµå·Î Æ÷Ä¿½º ÀÌµ¿
function moveNextField(curField,nextField,charCount) {
    if (curField.value.length  == charCount) {
        nextField.select();
        nextField.focus();
    }        
}        

function checkDigitOnly(obj) {
    var len = obj.value.length;
    if ( isNaN(obj.value.substr(len-1,1)) ) {
        obj.value = obj.value.substr(0,len-1);
    }
}           

// ÀÚÀ¯ÀÔ·Â and onBlur ÀÌº¥Æ®¿¡¼­ Ã¼Å©
function digitOnly(obj) {
    var val = obj.value.replace(/-/g, "");
    if ( isNaN(val) ) {
        obj.select();
        obj.focus();
    } else {
        obj.value = val;
    }
}    

// »ç¾÷ÀÚµî·Ï¹øÈ£ 
function fillBizNumber(obj) {
    var len = obj.value.length;
    var lastChar = obj.value.substr(len-1,1)
    if (len == 3 || len == 6) {
        obj.value += "-";
    }
}

// ¿À´Ã ³¯Â¥¸¦ ±¸ÇÔ.
function getToday(dateType) {
    var yyyy,mm,dd;
    today = new Date();
    yyyy = today.getFullYear();
    mm = parseInt(today.getMonth()) + 1;
    dd = parseInt(today.getDate());
    if ( mm < 10 ) mm = "0" + mm;
    if ( dd < 10 ) dd = "0" + dd;
    switch (dateType) {
        case "yyyy":
            return yyyy; break;
        case "mm":
            return mm; break;
        case "dd":
            return dd; break;
        case "yyyymmdd":
            return yyyy + mm + dd; break;
        default:
            return yyyy + mm + dd; break;
    }            
}

function txt2money(txtval) {
    var tmpval = txtval;
    tmpval = tmpval.replace(/,/g,"")
    if ( isNaN(tmpval)) return 0;
    if ( ! parseFloat(tmpval)) return 0;
    return parseFloat(tmpval);
}

// ±Ý¾×À» °¡µ¶¼ºÀÖ´Â ¹®ÀÚ¿­(Ãµ´ÜÀ§ ÄÄ¸¶)·Î º¯È¯
function formatCurrency(amt) {
    var arrAmt = amt.toString().split(".");
    num = arrAmt[0].toString().replace(/\$|\,/g,'');
    if(isNaN(num))  num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    num = Math.floor(num/100).toString();
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+
            num.substring(num.length-(4*i+3));
    
    return (  ((sign)?'':'-') + num + ((arrAmt[1])?'.'+arrAmt[1]:'')  );
}

// ¿ä°ÍµÎ ¸¶Âù°¡Áö.
function formatMoney(srcNumber) {
  var txtNumber = '' + srcNumber;
  if (isNaN(txtNumber) || txtNumber == "") {
    return txtNumber;
  }
  else {
    var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
    var arrNumber = txtNumber.split('.');
    arrNumber[0] += '.';
    do {
      arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
    } while (rxSplit.test(arrNumber[0]));
    if (arrNumber.length > 1) {
      return arrNumber.join('');
    }
    else {
      return arrNumber[0].split('.')[0];
    }
  }
}

// ¼ýÀÚÀÔ·ÂÀ» ±Ý¾× ¹®ÀÚ¿­·Î º¯È¯
function convertMoneyStr(obj) {
    var val = obj.value.replace(/,/g, "");
    if (val=="") return "";
    if ( isNaN(val) || val.length>15) {
        alert("±Ý¾×À» È®ÀÎÇÏ¼¼¿ä.(" + val + ")" );
        obj.select();
        obj.focus();
    } else {
        obj.value = getCurrencyText(val);
    }
}
// ÅëÈ­¹®ÀÚ¿­ ÇÔ¼öÁß¿¡ Á© ³ªÀº°Å °°´Ù. 
function getCurrencyText(val) {
    var i=0;
    var ret = "";
    val = val + "";
    var sign="";
    if (val.substr(0,1)=="+" || val.substr(0,1)=="-") {
        sign = val.substr(0,1);
        val = val.substr(1);
    }
    val = val.replace(/,/g,"");
    if (val == "") return "";
    if (val.length>15) {
        alert("±Ý¾×À» È®ÀÎÇÏ¿© ÁÖ½Ê½Ã¿À"); 
        return 0;
    }        
    for (i=3;i<19;i=i+4) {
        if (val.length > i) 
            val = val.substr(0,val.length-i) + "," + val.substr(val.length-i);
    }            
    return sign + val;
}
// µÎ°³ÀÇ selectbox °£ ¾ÆÀÌÅÛ ÀÌµ¿ (s1 ==> s2)
// µÎ selectbox ´Â size, multiselect µîÀÇ ¼º°ÝÀÌ °°¾Æ¾ß ÇÔ.
// ¸ÖÆ¼¼¿·ºÆ® °¡´É. 
function moveOption(s1,s2 ) {
    var opt;
    var leng1 = s1.length;
    var leng2 = s2.length;
    var isDup;
    var o1;
    var arrOptRemain = new Array();
    var arrOptSelected = new Array();
    for (i=0; i<leng1; i++) {
        isDup = false;
        o1 = s1.options[i];
        if (! o1) continue;
        if (o1.selected) {
            for (j=0; j<s2.length;j++) {
                if (o1.value == s2.options[j].value) {
                    isDup = true;
                    alert( o1.value + " ´Â target ¸®½ºÆ®¿¡ ÀÌ¹Ì Á¸ÀçÇÕ´Ï´Ù");
                    return -1;
                }
            }
            if ( ! isDup ) {
                arrOptSelected[arrOptSelected.length] = o1;
            } else {
                arrOptRemain[arrOptRemain.length] = o1;
            }
        } else {
            arrOptRemain[arrOptRemain.length] = o1;
        }            
    }

    s1.length = 0;
    s1.length = arrOptRemain.length;
    s2.length = leng2 + arrOptSelected.length;
    
    for (k=0; k<arrOptRemain.length; k++) {
        s1.options[k] = arrOptRemain[k];
    }

    for (k=0; k<arrOptSelected.length; k++) {
        s2.options[leng2 + k] = arrOptSelected[k];
    }
}

function getDateStr(strDateFormat) {
    var yyyy,mm,dd,hh,ii,ss;
    var today = new Date();
    yyyy = today.getFullYear();
    mm = ( (today.getMonth() + 1) < 10 ) ? "0"+ (today.getMonth() + 1) : (today.getMonth() + 1);
    dd = ( today.getDate() < 10 )   ? "0" + today.getDate()     : today.getDate();
    hh = ( today.getHours() < 10 )  ? "0" + today.getHours()    : today.getHours();
    ii = ( today.getMinutes() < 10) ? "0" + today.getMinutes()  : today.getMinutes();
    ss = ( today.getSeconds() < 10) ? "0" + today.getSeconds()  : today.getSeconds();

    switch (strDateFormat.toLowerCase()) {
        case "yyyy":
            return yyyy; break;
        case "mm":
            return mm; break;
        case "dd":
            return dd; break;
        case "yymmdd":
            return yyyy.toString().substring(2,4) + mm + dd; break;
        case "yyyymmdd":
            return yyyy + mm + dd; break;
        case "hhiiss":
            return hh + ii + ss; break;
        case "yyyymmddhhiiss":
            return yyyy + mm + dd + hh + ii + ss; break;
        default:
            return yyyy + mm + dd; break;
    }            
}
/* EOF */
