/* validate °ü·Ã ÇÔ¼ö */

/*
------------------------------------------------------------------------------------
  FORM FIELD CHECK 1. NULL CHECK
------------------------------------------------------------------------------------
*/

function checkNull(oField, strMsg, blnFocus)
{
	var isNotNull = false;
	var fieldType = null;
	var mainField;
	
	if (typeof(oField.type) == 'undefined' && typeof(oField.length) != 'undefined')
		mainField = oField[0];
	else
		mainField = oField;
	fieldType = mainField.type;


	switch (fieldType)
	{
		case "hidden" :
		case "text" :
		case "password" :
		case "file" :
			isNotNull = hasValue(oField);
			break;
		case "textarea" :
			isNotNull = hasEditerValue(oField);
			break;
		case "checkbox" :
		case "radio" :		
			isNotNull = isChecked(oField);
			break;		
		case "select-one" :
		case "select-multiple" :
			isNotNull = isNotSelected(oField);
			break;
	}
	
	if (!isNotNull)
	{
		if (strMsg.length > 0) {
			alert(strMsg + " ÀÔ·ÂÇØÁÖ¼¼¿ä.");
		}
		if (blnFocus == true)
		{
			mainField.focus();
		}
	}
	
	return isNotNull;
}

function hasValue(oField)
{
	// ¿ä»óÇÑ Æ¯¼ö¹®ÀÚ´Â °ø¹é¹®ÀÚ·Î ¹Ù²Û´Ù. 
	// ¹Ù²Û°á°ú ¹®ÀÚ¿­ÀÌ ¾Æ¹«°Íµµ ¾ø°Ô µÇ¸é ¾Æ¹«Â¦¿¡µµ ¾µ¸ð¾ø´Â ¹®ÀÚ¿­ÀÌ¾ú´Ù°í ÆÇ´ÜÇÑ´Ù.
	if (oField.value.replace(/(^\s*)|(\s*$)/g, "") == "")
		return false;
	else
		return true;
}

function hasEditerValue(oField)
{
	if (oField.value.replace(/&nbsp;/g, " ").replace(/(^\s*)|(\s*$)/g, "") == "")
		return false;
	else
		return true;
}

function isChecked(oField)
{	
	var checked = false;

	if (typeof(oField.length) != 'undefined')
	{
		for (var i=0; i<oField.length; i++)
			if (oField[i].checked)
				checked = true;
	}
	else
	{
		checked = oField.checked;
	}
	
	return checked;
}

function isNotSelected(oField)
{
	if (oField.selectedIndex == -1)
	{
		return false;
	}
	else
	{
		if ((oField.value == -1) || (oField.value == ""))
			return false;
		else
			return true;
	}
}



/*
------------------------------------------------------------------------------------
  FORM FIELD CHECK 2. LENGTH CHECK
------------------------------------------------------------------------------------
*/

// ÇÑ±ÛÀÌ ¾Æ´Ò¶§´Â ±ÛÀÚ¼ö¸¦ ´ë»óÀ¸·Î ÇÑ´Ù.
function checkLength(oField, min, max, strMsg, blnFocus)
{
	var isValid = false;
	var len_value = oField.value.length;
	
	if (min < 0)
	{
		if (len_value < max)
			isValid = true;
	}
	if (max < 0)
	{
		if (len_value > min)
			isValid = true;
	}
	if (min >= 0 && max >= 0)
	{
		if (len_value >= min && len_value <= max)
			isValid = true;
	}
		
	if (!isValid)
	{
		if (min == max) {
			alert(strMsg + " " + max + "ÀÚ¸¸ °¡´ÉÇÕ´Ï´Ù.");
		} else {
			alert(strMsg + " ÃÖ¼Ò " + min + "ÀÚ ÃÖ´ë " + max + "ÀÚ±îÁö °¡´ÉÇÕ´Ï´Ù.");
		}
		
		if (blnFocus == true)
			oField.focus();
	}
	
	return isValid;
}



/*
------------------------------------------------------------------------------------
  FORM FIELD CHECK 3. LENGTH CHECK (INCLUDE KOREAN)
------------------------------------------------------------------------------------
*/

// ÇÑ±ÛÀÏ¶§´Â ÇÑ±ÛÀÚ¸¦ 2¹ÙÀÌÆ®·Î ÇÑ´Ù.
function checkLengthKor(oField, min, max, strMsg, blnFocus)
{
	var isValid = false;
	var len_value = oField.value.bytes();
	
	if (min < 0)
	{
		if (len_value < max)
			isValid = true;
	}
	if (max < 0)
	{
		if (len_value > min)
			isValid = true;
	}
	if (min >= 0 && max >= 0)
	{
		if (len_value >= min && len_value <= max)
			isValid = true;
	}
		
	if (!isValid)
	{
		if (min == max) {
			alert(strMsg + " ÇÑ±Û" + max/2 + "ÀÚ(¿µ¹® " + max + "ÀÚ)¸¸ °¡´ÉÇÕ´Ï´Ù.");
		} else {
			alert(strMsg + "  ÃÖ¼Ò ÇÑ±Û" + min/2 + "ÀÚ(¿µ¹® " + min + "ÀÚ) ÃÖ´ë ÇÑ±Û" + max/2 + "ÀÚ(¿µ¹® " + max + "ÀÚ)±îÁö °¡´ÉÇÕ´Ï´Ù.");
		}
		if (blnFocus == true)
			oField.focus();
	}
	
	return isValid;
}



/*
------------------------------------------------------------------------------------
  GET FORM FIELD's INDEX, VALUE
  SET FORM FIELD's VALUE
------------------------------------------------------------------------------------
*/

// ¶óµð¿À ¹öÆ°¿¡¼­ Ã¼Å©µÈ °ÍÀÇ ÀÎµ¦½º ¹øÈ£¸¦ ±¸ÇÑ´Ù.
function getCheckedIndex(oField) // for radio button
{
	var index = -1;

	for(i=0; i < oField.length; i++) {
		if(oField[i].checked) {
			index = i;
			break;
		}
	}

	return index;
}

// ¶óµð¿À ¹öÆ°¿¡¼­ Ã¼Å©µÈ °ÍÀÇ °ªÀ» ±¸ÇÑ´Ù.
function getCheckedValue(oField) // for radio button
{
	var value = null;

	for(i=0; i < oField.length; i++) {
		if(oField[i].checked) {
			value = oField[i].value;
			break;
		}
	}

	return value;
}

// ¶óµð¿À °ªÀ» º¹¿øÇÒ¶§ paramValueÀÇ °ªÀ¸·Î Ã¼Å©µÇ°Ô ¸¸µç´Ù.
function radioCheck(oField, paramValue) // for radio button
{
	for (var i=0; i<oField.length; i++) {
		if (oField[i].value == paramValue) {
			oField[i].checked = true;
			break;
		}
	}
}

// ÄÞº¸¹Ú½ºÀÇ ¼±ÅÃµÈ °ÍÀÇ °ªÀ» ±¸ÇÑ´Ù.
function getSelectedValue(oField) // for select button
{
	var value = null;

	selectedIndex = oField.selectedIndex;

	value = oField[selectedIndex].value;

	return value;
}

// ¹®ÀÚ¿­ÀÇ ±æÀÌ¸¦ ±¸ÇÑ´Ù. ¾Æ½ºÅ°ÄÚµå°ªÀÌ 0 ~ 255¸é +1, ±× ÀÌ¿Ü´Â ÇÑ±Û·Î °£ÁÖÇÏ°í +2
function strLenCk(str)
{
  var len = 0;
  for (var i=0;i<str.length; i++) {
    var n = str.charCodeAt(i);
    if ((n>= 0)&&(n<256)) {
      len ++;
    } else {
      len += 2;
	}
  }
  return len;
}

// ¹®ÀÚ¿­ÀÇ Æ¯Á¤ ±æÀÌ¸¦ ¹ÝÈ¯ÇÑ´Ù. 0 ~ 255¸é +1, ±× ÀÌ¿Ü´Â ÇÑ±Û·Î °£ÁÖÇÏ°í +2·Î °è»êÇØ¼­ ¹®ÀÚ¿­À» ±¸ÇÑ´Ù.
function strLenCnt(str,lengths)
{
  var len = 0;
  var newStr = '';
  
  for (var i=0;i<str.length; i++) {
    var n = str.charCodeAt(i);
    var nv = str.charAt(i);
    if ((n>= 0)&&(n<256)) {
      len ++;
    } else {
      len += 2;
	}

	if (len>lengths)
		break;
	else
		newStr = newStr + nv;
  }

  return newStr;
}

//¸î±ÛÀÚ ÀÌ»ó µÇ¸é ..À» ºÙ¿©ÁØ´Ù.
function strCutPrint(str,byteLength) {
	var strOld = str;
	str = strLenCnt(str,byteLength);
	if (str!=strOld) {
		str = str+'..';
	}
	return str;
}

// ¸î±ÛÀÚ ÀÌ»ó µÇ¸é ..À» ºÙ¿©ÁØ´Ù. textarea·ÎºÎÅÍ ºÒ·¯¿À±â
function strCutPrintT(obj,byteLength) {
	var str = '';
	str = obj.value;
	var strOld = str;
	str = strLenCnt(str,byteLength);
	if (str!=strOld) {
		str = str+'..';
	}
	return str;
}

// wrongStrÀÇ ±ÛÀÚ°¡ str¿¡ Æ÷ÇÔµÇ¾î ÀÖÀ¸¸é true, ¾øÀ¸¸é false
function hasWrongWord(str, wrongStr)
{
	if(str.indexOf(wrongStr) >= 0) return true;
	else return false;
}





/*
------------------------------------------------------------------------------------
  FORM FIELD CHECK 4. WRONG CHAR CHECK (Æ¯Á¤¹®ÀÚ°¡ Æ÷ÇÔµÇ¾î ÀÖÀ¸¸é false)
------------------------------------------------------------------------------------
*/

function checkWrongWord(oField, wrongStr, strMsg) // for text and textbox
{
	var isWrong = false;
	var fieldType = null;
	var mainField;
	
	if (typeof(oField.type) == 'undefined' && typeof(oField.length) != 'undefined')
		mainField = oField[0];
	else
		mainField = oField;
	fieldType = mainField.type;

	switch (fieldType)
	{
		case "text" :
		case "textarea" :
			isWrong = hasWrongWord(oField.value, wrongStr);
			break;
	}
	
	if (isWrong)
	{
		alert(strMsg);
		array = mainField.value.split(wrongStr);
		result = '';
		for(i=0; i<array.length; i++) {
			result += array[i];
		}
		mainField.value = result;
		mainField.focus();
	}
	
	return !isWrong;
}



/*
------------------------------------------------------------------------------------
  FORM FIELD CHECK 5. ALPHA NUMERIC CHARACTER CHECK (¿µ¹® ¼Ò¹®ÀÚ¿Í ¼ýÀÚ·Î¸¸ µÇ¾î ÀÖÀ¸¸é true)
------------------------------------------------------------------------------------
*/

function checkAlphaNum(oField, strMsg, blnFocus) // for text and textbox
{
	var isAlphaNum = false;
	var fieldType = null;
	var mainField;
	
	if (typeof(oField.type) == 'undefined' && typeof(oField.length) != 'undefined')
		mainField = oField[0];
	else
		mainField = oField;
	fieldType = mainField.type;

	switch (fieldType)
	{
		case "text" :
		case "password" :
		case "textarea" :
			isAlphaNum = isLowAlphaNumCheck(oField.value);
			break;
	}
	
	if (!isAlphaNum)
	{
		alert(strMsg + " ¿µ¹®¼Ò¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù.");
		if (blnFocus == true)
			mainField.focus();
	}
	
	return isAlphaNum;
}

function isLowAlphaNumCheck(arg_v)
{
	if (arg_v.match(/^[a-z0-9]*$/g)) return true;
	else return false;
}

// ¿µ¹®´ë¹®ÀÚ,¼Ò¹®ÀÚ,¼ýÀÚ·Î¸¸ ±¸¼ºµÇ¾î ÀÖÀ¸¸é true
function isAlphaNumCheck(arg_v)
{
	var alpha_num_Str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

	for (i=0; i < arg_v.length; i++)
	{
		var substr = arg_v.substring(i, i+1);		
		if (alpha_num_Str.indexOf(substr) < 0) 
			return false;	
		
	}
	
	return true;
}



/*
------------------------------------------------------------------------------------
  FORM FIELD CHECK . (¼ýÀÚÀÌ¸é ÇüÅÂÀÌ¸é true)
------------------------------------------------------------------------------------
*/

function checkNum(oField, Sign, strMsg, blnFocus)
{
	var ov = oField.value;

	if (isNaN(ov)) {
		alert(strMsg + " ¼ýÀÚ¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù.");
		if (blnFocus == true)
		{
			oField.focus();
		}
		return false;
	}
	
	if (Sign == "u") {
		if (ov < 0) {
			alert(strMsg + " ¾ç¼ö¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù.");
			if (blnFocus == true)
			{
				oField.focus();
			}
			return false;
		}
	}

	return true;
}


// ¼ýÀÚ¸é true
function isNumber(arg) {
	for (i =0 ; i < arg.length; i++) {
  	
	  	if (arg.charCodeAt(i) < 48 || arg.charCodeAt(i) > 57) {
	  		return false;
	  	}
	}
	return true;
}




/*
------------------------------------------------------------------------------------
  FORM FIELD CHECK 6. SPECIAL CHARACTER CHECK (Æ¯¼ö¹®ÀÚ ÇÏ³ªµµ ¾ø¾î¾ß true)
------------------------------------------------------------------------------------
*/

function checkNotSpecialChar(oField, strMsg, blnFocus) // for text and textbox
{
	var notSpecialChar = false;
	var fieldType = null;
	var mainField;
	
	if (typeof(oField.type) == 'undefined' && typeof(oField.length) != 'undefined')
		mainField = oField[0];
	else
		mainField = oField;
	fieldType = mainField.type;

	switch (fieldType)
	{
		case "text" :
		case "textarea" :
			notSpecialChar = hasNotSpecialChar(oField.value);
			break;
	}
	
	if (!notSpecialChar)
	{
		alert(strMsg);
		if (blnFocus == true)
			mainField.focus();
	}
	
	return notSpecialChar;
}

// Æ¯¼ö¹®ÀÚ Ã¼Å© (Æ¯¼ö¹®ÀÚ ÇÏ³ªµµ Æ÷ÇÔµÇ¾î ÀÖÁö ¾ÊÀ¸¸é true)
function hasNotSpecialChar(id_text)
{
		//var specialchar = '~`!@#$%^&*()-_=+\|<>?,./;:"';
		var specialchar = '`@#$%&\|<>;"';

		var i ; 
		for ( i=0; i < id_text.length; i++ )  {
			if( specialchar.indexOf(id_text.substring(i,i+1)) > 0) {
				break ; 
			}
		}
		if ( i != id_text.length ) {
			return false ; 
		}
		else{
			return true ;
		} 

		return false;
}

// ÇÑ±Û·Î¸¸ µÇ¾îÀÖ´ÂÁö Ã¼Å© (ÇÑ±Û¿ÜÀÇ ´Ù¸¥ ±ÛÀÚ°¡ ÀÖÀ¸¸é true, ÇÑ±Û·Î¸¸ µÇ¾î ÀÖ¾î¾ß false)
function isNotOnlyKorean(id_text){
	for ( var i=0; i < id_text.length; i++ ) {
		if ( id_text.charCodeAt(i) < 0xAC00 || id_text.charCodeAt(i) > 0xD7A3){
			if (( id_text.charCodeAt(i) < 12593 || id_text.charCodeAt(i) > 12643 ) && ( id_text.charCodeAt(i) != 32)) {
				return true;
			}
		}
	}	
	return false;
}


function keydownEngNum() {
	if (!(event.keyCode>=48&&event.keyCode<=57)&&!(event.keyCode>=65&&event.keyCode<=90)&&event.keyCode!=9&&event.keyCode!=8&&event.keyCode!=46&&event.keyCode!=37&&event.keyCode!=39&&event.keyCode!=45) {
		event.keyCode = 0;
		event.cancelBubble = true;
		event.returnValue = false;
	}
}

//keydown½Ã¿¡ ¿µ¾î¿Í ¼ýÀÚ¸¸ ¸Ô´Â °Í.
// onkeydown="javascript:notInMSIE5('keydownEngNum()')"
function notInMSIE5(functionnm) {		//ºê¶ó¿ìÀú°¡ 5.0ÀÌ¸é ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê´Â´Ù.
	if (navigator.userAgent.indexOf("MSIE 5")==-1)
	{
		eval(functionnm);
	}
}





/*
------------------------------------------------------------------------------------
  FORM FIELD CHECK 7. (ÀÌ¸ÞÀÏÀÌ À¯È¿ÇÑ°ÍÀÎÁö °Ë»ç)
------------------------------------------------------------------------------------
*/

function checkEmail(oField, strMsg, blnFocus) {
	
	var ov = oField.value;
	
	if (isEmail(ov)) {
		return true;
	} else {
		alert (strMsg + " ¹Ù¸£Áö ¾Ê½À´Ï´Ù.");
		if (blnFocus == true)
			oField.focus();
		return false;
	}
}

// ÀÌ¸ÞÀÏ °Ë»ç
function isEmail(strCk) {
	// regular expression Áö¿ø ¿©ºÎ Á¡°Ë
	var intSupported = 0;
	if(window.RegExp) {
		var strTemp = "a";
		var objTempReg = new RegExp(strTemp);
		if (objTempReg.test(strTemp)) intSupported = 1;
	}

	if (!intSupported) {
		return (strCke.indexOf(".") > 2) && (strCk.indexOf("@") > 0);
	}
	
	var objR1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var objR2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	
	return (!objR1.test(strCk) && objR2.test(strCk));
}








/*
------------------------------------------------------------------------------------
  FORM °ü·Ã À¯¿ëÇÑ ÇÔ¼ö
------------------------------------------------------------------------------------
*/
// ¶óµð¿À¹öÆ° ÇÊ¼öÇ×¸ñÀÎµ¥ °ªÀÌ ÀÖ´ÂÁö °Ë»ç
function getRadioVal (FormNm, InputNm) {

	var cnt=0; 
	var sRlt;
	var o = eval("document."+FormNm+"."+InputNm);
	
	sRlt = "";
	
	for(var i=0; i<o.length;i++){
	   if(o[i].checked) sRlt = o[i].value;
	}
	
	return sRlt;
} 