/* 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 "text" :
		case "password" :
		case "file" :
		case "hidden" :
			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)
	{
		alert2(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)
			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)
	{
		alert2(strMsg);
		if (blnFocus == true)
			oField.focus();
	}
	
	return isValid;
}
// FORM FIELD CHECK 3. LENGTH CHECK (INCLUDE KOREAN)
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)
	{
		alert2(strMsg);
		if (blnFocus == true)
			oField.focus();
	}
	
	return isValid;
}

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;
}

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;
}

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;
}
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;
}
function strCutPrintT(obj,byteLength) {	 //¸î±ÛÀÚ ÀÌ»ó µÇ¸é ..À» ºÙ¿©ÁØ´Ù. textarea·ÎºÎÅÍ ºÒ·¯¿À±â
	var str = '';
	str = obj.value;
	var strOld = str;
	str = strLenCnt(str,byteLength);
	if (str!=strOld) {
		str = str+'..';
	}
	return str;
}

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)
	{
		alert2(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 "textarea" :
			isAlphaNum = isLowAlphaNumCheck(oField.value);
			break;
	}
	
	if (!isAlphaNum)
	{
		alert2(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;
}

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;
}

// ¼ýÀÚ Ã¼Å©
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)
	{
		alert2(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() {			//keydown½Ã¿¡ ¿µ¾î¿Í ¼ýÀÚ¸¸ ¸Ô´Â °Í.
	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;
	}
}

function notInMSIE5(functionnm) {		//ºê¶ó¿ìÀú°¡ 5.0ÀÌ¸é ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê´Â´Ù.
	if (navigator.userAgent.indexOf("MSIE 5")==-1)
	{
		eval(functionnm);
	}
}
