/*
<form name="ttt" onSubmit="return chkForm(this);">
	<input type="text" required hname="ÀÌ °ªÀ» ÀÔ·ÂÇÏ¼¼¿ä!">
	<input type="text" min="2" minname="2 ÀÚº¸´Ù ±æ¾î¾ß ÇÕ´Ï´Ù" option="regNum" oname="¼ýÀÚ·Î ÀÛ¼ºÇÏ¿© ÁÖ½Ê½Ã¿À.">
	<input type="text" required hname="ÀÌ¸ÞÀÏÇÊ¼ö!" option="regMail" oname="¸ÞÀÏÇü½Ä¿À·ù!">
	<input type="submit" name="Submit" value="È®ÀÎ">
</form>
*/

// ÆûÃ¼Å© sb : ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °´Ã¼ disabled¸¦ ÇÏ±âÀ§ÇÔ, fm : Æû °´Ã¼
function fCheck(sb, f)
{
	//sb.disabled = true;
	var i, currEl, focusMove;
	for(i=0 ; i < f.elements.length ; i++)
	{
		// ÇÏ³ªÀÇ °´Ã¼¸¦ º¯¼ö¿¡ ´ã´Â´Ù.
		currEl = f.elements[i];

		// ÇÊ¼ö»çÇ× Ã¼Å© ½ÃÀÛ
		if (currEl.getAttribute("required") != null)
		{
			// Æ÷Ä¿½º°¡ ÇÊ¿ä¾øÀ»¶§
			if (currEl.getAttribute("nofocus") != null)
			{
				focusMove = false;
			}
			else
			{
				focusMove = true;
			}

			// Æû¿ä¼Ò ±¸ºÐÇØ¼­ ÇÔ¼ö È£Ãâ
			if (currEl.type.toLowerCase()=="checkbox")
			{
				if (!chkCheckbox(currEl, currEl.hname, sb, focusMove)) return false;
			}
			else if (currEl.type.toLowerCase()=="radio")
			{
				if (!chkRadio(f, currEl, currEl.hname, sb, focusMove)) return false;
			}
			else
			{
				if (!chkText(currEl, currEl.hname, sb, focusMove)) return false;
			}
		}

		// µ¿ÀÏÇÑ °ªÀÎÁö Ã¼Å©
		if (currEl.getAttribute("samed") != null)
		{
			if (!chkSame(currEl, currEl.sname, sb, focusMove, currEl.samed)) return false;
		}

		// ÇÏ³ªÀÇ °ªÀÌ Á¤ÇØÁö¸é ´Ù¸¥°ÍÀº ÇÊ¼öÇ×¸ñÀÌ µÈ´Ù.
		if (currEl.getAttribute("anded") != null)
		{
			if (!chkAnded(currEl, currEl.anded, currEl.andvalue, currEl.andmsg, sb, focusMove)) return false;
		}

		// »ç¾÷ÀÚµî·Ï¹øÈ£ Ã¼Å©
		if (currEl.getAttribute("cnumber") != null)
		{
			if (!chkcnum(currEl, currEl.cname, sb, focusMove)) return false;
		}

		// ÁÖ¹Îµî·Ï¹øÈ£ Ã¼Å©
		if (currEl.getAttribute("pnumber") != null)
		{
			if (!PersonNumCheck(currEl.pnumber, currEl, currEl.pname, sb, focusMove)) return false;
		}

		// ÀÔ·Â ÆäÅÏÀ» Ã¼Å©ÇÑ´Ù.
		if (currEl.getAttribute("option") != null && currEl.value.length > 0)
		{
			if (!chkPatten(currEl, currEl.oname, sb, focusMove, currEl.option)) return false;
		}
		
		// ÃÖ¼Ò±æÀÌ¸¦ Ã¼Å©ÇÑ´Ù.
		if (currEl.getAttribute("min") != null && currEl.value.length > 0)
		{
			if (!chkMinimum(currEl, currEl.minname, sb, focusMove, currEl.min)) return false;
		}

		// ÃÖ´ë±æÀÌ¸¦ Ã¼Å©ÇÑ´Ù.
		if (currEl.getAttribute("max") != null && currEl.value.length > 0)
		{
			if (!chkMaximum(currEl, currEl.maxname, sb, focusMove, currEl.max)) return false;
		}

		// ÃÖ¼Ò°ªÀ» Ã¼Å©ÇÑ´Ù.
		if (currEl.getAttribute("minValue") != null && currEl.value.length > 0)
		{
			if (!chkMinValue(currEl, currEl.minMsg, sb, focusMove, currEl.minValue)) return false;
		}

		// ÃÖ´ë°ªÀ» Ã¼Å©ÇÑ´Ù.
		if (currEl.getAttribute("maxValue") != null && currEl.value.length > 0)
		{
			if (!chkMaxValue(currEl, currEl.minMsg, sb, focusMove, currEl.maxValue)) return false;
		}
	}

	sb.disabled = false;
	return true;
}

// ÆÐÅÏÃ¼Å©
function chkPatten(field, name, sb, focusMove, patten)
{
	var regNum =/^[0-9]+$/;
	var regPhone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/;		// Çü½Ä : 033-1234-5678
	var regMail =/^([a-zA-Z0-9_\-\.\+]+)@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	var regMail1 =/^[_a-zA-Z0-9-]/;
	var regMail2 =/[._a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	var regDomain =/^[.a-zA-Z0-9-]+.[a-zA-Z]+$/;
	var regAlpha =/^[a-zA-Z]+$/;
	var regHost =/^[a-zA-Z-]+$/;
	var regHangul =/[°¡-ÆR]/;
	var regHangulEng =/[°¡-ÆRa-zA-Z]/;
	var regHangulOnly =/^[°¡-ÆR]*$/;
	var regId = /^[a-zA-Z]{1}[a-zA-Z0-9_-]{5,19}$/;
	//var regId = /^[a-zA-Z0-9_-]{6,20}$/;
	var regDate =/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;				// Çü½Ä : 2002-08-15
   
	patten = eval(patten);
	
	if(!patten.test(field.value))
	{
		alert(name);
		if (focusMove) field.focus();
		sb.disabled = false;
		return false;
	}
	return true;
}


// ¹ýÀÎ¹øÈ£
function CorporationNumCheck(field1, field2, errorMSG, sb, focusMove)
{
    var corpnum = [field1.value, field2.value];

		var sum = 0;
		var num = [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2];
		var last = parseInt(corpnum.charAt(12));
		for(var i = 0; i < 12; i++) 
		{
				sum += parseInt(corpnum.charAt(i)) * num[i];
		}
		var cnum = (10-( sum  % 10))%10;

		if (last==cnum)
		{
				return true;
		}
		else
		{
				return false;
		}
}


// ÁÖ¹Îµî·Ï¹øÈ£
function PersonNumCheck(field1, field2, errorMSG, sb)
{
  var ssn1 = field1.value;
  var ssn2 = field2.value;
  var ssn = new Array(13);

  for (i=0;i<ssn1.length;i++)
  {
    ssn[i] = parseInt(ssn1.charAt(i));
  }
  
  for (i=0;i<ssn2.length;i++)
  {
    ssn[i + 6] = parseInt(ssn2.charAt(i));
  }

  var tempSsn = ssn[0]*2 + ssn[1]*3 + ssn[2]*4 + ssn[3]*5 + ssn[4]*6 + ssn[5]*7 +
   ssn[6]*8 + ssn[7]*9 + ssn[8]*2 + ssn[9]*3 + ssn[10]*4 + ssn[11]*5;
  
  tempSsn %= 11;
  tempSsn = 11 - tempSsn;
  
  if (tempSsn > 9)
  {
    tempSsn %= 10;
  }
  
  if (tempSsn != ssn[12])
  {
		alert(errorMSG);
		sb.disabled = false;
    return false;
  }
  else
  {
    return true;
  }
}


// »ç¾÷ÀÚµî·Ï¹øÈ£ Ã¼Å©
function chkcnum(field, errorMSG, sb)
{
	try
	{
		var c1 = field.value.substring(0,1); 
		var c2 = field.value.substring(1,2); 
		var c3 = field.value.substring(2,3); 
		var c4 = field.value.substring(3,4); 
		var c5 = field.value.substring(4,5); 
		var c6 = field.value.substring(5,6); 
		var c7 = field.value.substring(6,7); 
		var c8 = field.value.substring(7,8); 
		var c9 = field.value.substring(8,9); 
		var c10 = field.value.substring(9,10); 
	}
	catch (ex)
	{
		var c1 = field.substring(0,1); 
		var c2 = field.substring(1,2); 
		var c3 = field.substring(2,3); 
		var c4 = field.substring(3,4); 
		var c5 = field.substring(4,5); 
		var c6 = field.substring(5,6); 
		var c7 = field.substring(6,7); 
		var c8 = field.substring(7,8); 
		var c9 = field.substring(8,9); 
		var c10 = field.substring(9,10); 
	}
  
  var a1 = (c1*1)+(c2*3)+(c3*7)+(c4*1)+(c5*3)+(c6*7)+(c7*1); 
  var a2 = a1 % 10; 
  var a3 = (c8 * 3) % 10; 
  var a4 = c9 * 5; 
  var a5 = Math.round(a4/10-0.5); 
  var a6 = a4 - (a5*10); 
  var a7 = (a2+a3+a5+a6) % 10; 
  var a8 = (10 - a7) % 10; 

  if (a8 != c10)
	{
		alert(errorMSG);
		sb.disabled = false;
		return false;
	}
	return true;
}


// ÃÖ¼Ò°ª Ã¼Å©
function chkMinValue(field, msg, sb, focusMove, minValue)
{
	fieldvalue = field.value;
	if (fieldvalue < minValue)
	{
		alert(msg);
		if (focusMove) field.focus();
		sb.disabled = false;
		return false;
	}
	return true; 
}

// ÃÖ´ë°ª Ã¼Å©
function chkMinValue(field, msg, sb, focusMove, maxValue)
{
	fieldvalue = field.value;
	if (fieldvalue > maxValue)
	{
		alert(msg);
		if (focusMove) field.focus();
		sb.disabled = false;
		return false;
	}
	return true; 
}


// ÃÖ¼Ò±æÀÌ Ã¼Å©
function chkMinimum(field, name, sb, focusMove, minimum)
{
	fieldvalue = field.value;
	if (fieldvalue.length < minimum)
	{
		alert(name);
		if (focusMove) field.focus();
		sb.disabled = false;
		return false;
	}
	return true; 
}

// ÃÖ´ë±æÀÌ Ã¼Å©
function chkMaximum(field, name, sb, focusMove, maximum)
{
	fieldvalue = field.value;
	if (fieldvalue.length > maximum)
	{
		alert(name);
		if (focusMove) field.focus();
		sb.disabled = false;
		return false;
	}
	return true;
}

// ÇÊ¼ö°ª Ã¼Å©
function chkText(field, name, sb, focusMove)
{
	fieldvalue = field.value;
	fieldvalue = fieldvalue.split(" ");

	// ¿À¶óÅ¬ ¿¡·¯¸¦ ¹ß»ý½ÃÅ°´Â ' ¸¦ Á¦°ÅÇÑ´Ù.
	var flag = "";
	var eExp= /'/gi;

	field.value = field.value.replace(eExp, flag);

	if(field.value.length + 1 == fieldvalue.length)
	{
		alert(name);
		if (focusMove) field.focus();
		sb.disabled = false;
		return false;
	}
	return true; 
}

// ÇÊ¼ö°ª Ã¼Å© (Ã¼Å©¹Ú½º)
function chkCheckbox(field, name, sb, focusMove)
{
	if (!field.checked)
	{
		alert(name);
		if (focusMove) field.focus();
		sb.disabled = false;
		return false;
	}
	return true; 
}

// ÇÊ¼ö°ª Ã¼Å© (¶óµð¿À¹Ú½º)
function chkRadio(form, field, errorMSG, sb, focusMove)
{
	fieldname = eval(form.name+"."+field.name);

	for (var i=0 ; i < fieldname.length ; i++)
	{
		if (fieldname[i].checked) return true;
	}

	alert(errorMSG);
	sb.disabled = false;
	return false; 
}

// µÎ°³ÀÇ °ªÀÌ °°ÀºÁö Ã¼Å©
function chkSame(field, errorMSG, sb, focusMove, scheck)
{
	var svalue = document.getElementById(scheck).value;
	if (field.value != svalue)
	{
		alert(errorMSG);
		if (focusMove) field.focus();
		sb.disabled = false;
		return false;
	}
	return true; 
}

function chkAnded(field, andField, andValue, errorMSG, sb, focusMove)
{
	var svalue = document.getElementById(andField).value;
	if (svalue == andValue && field.value=='')
	{
		alert(errorMSG);
		if (focusMove) field.focus();
		sb.disabled = false;
		return false;
	}
	return true; 
}


function get_select_value(sset)
{
	for (var i = 0; i < sset.length; i++ ) {
		if ( sset.options[i].selected ) {
			return (sset[i].value);
		}
	}
	return "";
}

function get_radio_value(rset)
{
	if ("undefined" != typeof(rset)) {
		if (rset.length) {
			for (var i = 0; i < rset.length; i++ ) {
				if ( rset[i].checked ) {
					return (rset[i].value);
				}
			}
			return ""; 
		} else {
			if (rset.checked) {
				return rset.value;
			} else {
				return "";
			} 
		}
	} else {
		return "";
	}
}

function get_checkbox_value(cset)
{
	var checked;
	if (cset != null) {
		if (cset.length) {
			checked = new Array();
			var j = 0;
			for (var i = 0; i < cset.length; i++ ) {
				if ( cset[i].checked ) {
					checked[j] = cset[i].value;
					j++;
				}
			}
		} else {
			if (cset.checked) {
				checked = cset.value;
			}
		}
	}
	return checked;
}

function checkAllBox(allbox, cbox){
		if(cbox == null || cbox == 'undefined') {
			return;
		}
		
		var chkArr = cbox;
		var len    = cbox.length;
		var boolv  = allbox.checked;
		
    	if(len) {  // ¿©·¯ °³ÀÏ °æ¿ì
        	for(var i = 0 ; i < len ; i++) {
				chkArr[i].checked = boolv;          	  
        	}
    	} else { // ÇÑ °³ÀÏ °æ¿ì
        	cbox.checked = allbox.checked;
    	}

}


// Ã¼Å©¹Ú½º ¼±ÅÃ ¿©ºÎ
// checkbox     : ¼±ÅÃ ¿©ºÎ¸¦ È®ÀÎÇÒ Ã¼Å©¹Ú½º
function isSelected_checkbox(checkbox)
{
	var isSelected = false;

	// checkbox°¡ 1°³ÀÎ °æ¿ì¿¡´Â length ¼Ó¼ºÀÌ ¾ø´Ù.
	// µû¶ó¼­, 1°³ÀÎ °æ¿ì¿Í 2°³ ÀÌ»óÀÎ °æ¿ì¸¦ ³ª´²¼­ È®ÀÎÇÑ´Ù.
	if (checkbox != null)
	{
		// checkbox°¡ 1°³ÀÎ °æ¿ì
		if(checkbox.length == null || checkbox.length == 0)
		{
			if(checkbox.checked)
			{
				isSelected = true;
			}
		}
		// checkbox°¡ 2°³ ÀÌ»óÀÎ °æ¿ì
		else
		{
			var length = checkbox.length;

			for (var i=0; i<length; i++)
			{
				if(checkbox(i).checked)
				{
					isSelected = true;
					break;
				}
			}
		}		
	}

	return isSelected;
}
