
/*
 * util
 */
function getRadioCheckedValue(objs){
	var v = null;
	for(var i = 0; i < objs.length; i++){
		if(objs[i].checked){
			v = objs[i].value;
			break;
		}
	} 
	return v;
}

function isValidLength(str, max_length){
	var result = replaceLineBreaks(str);

	if(result.length > max_length)
		return false;
	return true;
}

function replaceLineBreaks(str){
	var re1 = /\n/g;
	var re2 = /\r\n/g;

	var r1 = str.replace(re1, '<br>');
	var r2 = r1.replace(re2, '<br>');

	return r2;
}

function Trim(str){
  return RTrim(LTrim(str));
}

function LTrim(str){
  var whitespace = new String(" \t\n\r");
  var s = new String(str);

  if(whitespace.indexOf(s.charAt(0)) != -1){
    var j=0, i = s.length;

    while(j < i && whitespace.indexOf(s.charAt(j)) != -1){
		j++;
    }
    s = s.substring(j, i);
  }
  return s;
}

function RTrim(str){
  var whitespace = new String(" \t\n\r");
  var s = new String(str);

  if(whitespace.indexOf(s.charAt(s.length-1)) != -1){
    var i = s.length - 1;

    while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1){
		i--;
	}
    s = s.substring(0, i+1);
  }
  return s;
}

function isDigit(str) {
	var re = /[0-9]/;
	for(var i = 0; i < str.length; i++){
		if(!str.charAt(i).match(re) )
			return false;
	}
	return true;
}

function isValidEmail(email) {
	var myEmailIsValid = true;
	var myAtSymbolAt = email.indexOf('@');
	var myLastDotAt = email.lastIndexOf('.');
	var mySpaceAt = email.indexOf(' ');
	var myLength = email.length;

	// at least one @ must be present and not before position 2
	if (myAtSymbolAt < 1 ) myEmailIsValid = false;

	// at least one . (dot) afer the @ is required
	if (myLastDotAt < myAtSymbolAt) myEmailIsValid = false;

	// at least two characters [com, uk, fr, ...] must occur after the last dot
	if (myLength - myLastDotAt <= 2) myEmailIsValid = false;

	// no empty space " " is permitted
	if (mySpaceAt != -1) myEmailIsValid = false;

	return myEmailIsValid;
}

var ALP_STR = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
var NUM_STR = "0123456789";
var SEX_STR = "12";
var MAX_COUNT = 999;

// ------------------------------------------------------------
//???????? - ?????
function getPID_SUM(sPID) {
	var iChkNum = 0;

	// ? 1 ?
	iChkNum = ALP_STR.indexOf(sPID.substr(0,1)) + 10;
	iChkNum = Math.floor(iChkNum/10) + (iChkNum%10*9);

	// ? 2 - 9 ?
	for(var i=1; i<sPID.length-1; i++) {
		iChkNum += sPID.substr(i,1) * (9-i);
	}

	// ? 10 ?
	iChkNum += sPID.substr(9,1)*1;

	return iChkNum;
}

// ------------------------------------------------------------
// ???????? - ??????
function chkPID_CHAR(sPID) {	
	var iPIDLen = String(sPID).length;

	var sChk = ALP_STR + NUM_STR;
	for(i=0;i<iPIDLen;i++) {
		if (sChk.indexOf(sPID.substr(i,1)) < 0) {
			return false;
		}
	}

	if (ALP_STR.indexOf(sPID.substr(0,1)) < 0) {
		return false;
	} else if ((sPID.substr(1,1) != "1") && (sPID.substr(1,1) != "2")) {
		return false;
	} else {
		for(var i=2; i<iPIDLen; i++) {
			if (NUM_STR.indexOf(sPID.substr(i, 1)) < 0)
				return false;
		}
	}
	return true;
}

// ------------------------------------------------------------
// ????????
function CheckPID(sPID) {
	
	if (Trim(sPID) == '') {
		return false;
	} else if (sPID.length != 10) {
		return false;
	} else {
		sPID = Trim(sPID.toUpperCase());
		if (!chkPID_CHAR(sPID))
			return false;

		var iChkNum = getPID_SUM(sPID);

		if (iChkNum % 10 != 0) {
			var iLastNum = sPID.substr(9, 1) * 1;
			for (i=0; i<10; i++) {
				var xRightAlpNum = iChkNum - iLastNum + i;
				if ((xRightAlpNum % 10) ==0)
					return false;				
			}
		}
	}
	
	return true;	
}