
//Validation

// Validator Object
var valid = new Object();

// REGEX Elements

	valid.num = /[0-9]$/;

	valid.eng = /[a-zA-Z0-9]$/;

	// matches zip codes
	valid.zipCode = /\d{3}(-\d{3})?/;

	// matches $17.23 or $14,281,545.45 or ...
	valid.Currency = /\$\d{1,3}(,\d{3})*\.\d{2}/;

	// matches 5:04 or 12:34 but not 75:83
	valid.Time = /^([1-9]|1[0-2]):[0-5]\d$/;

	//matches email
	valid.email = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;

	// matches phone ###-###-####
	valid.phoneNumber = /^\(?\d{3}\)?\s|-\d{3}-\d{4}$/;

	// International Phone Number
	valid.phoneNumberInternational = /^\d(\d|-){7,20}/;

	// IP Address
	valid.ipAddress = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;

	// Date xxxx/xx/xx
	valid.Date = /^\d{4}([-/])\d{1,2}\1\d{1,2}$/;

	// State Abbreviation
	valid.State = /^(AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NB|NC|ND|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY)$/i;

	// Social Security Number
	valid.SSN = /^\d{3}\-\d{2}\-\d{4}$/;

	valid.jumin = /^\d{6}\-\d{7}$/;

function validateForm(theForm) {

	var elArr = theForm.elements;
	for(var i = 0; i < elArr.length; i++) {
		with(elArr[i]) {
			var v = elArr[i].validator;
			if(!v) continue;
			if ((type=="radio" || type=="checkbox"))
			{
				var tmp=false;
				var a = document.all.item(name);
				if (a!=null) {
					if (a.length!=null) {
						for (j=0; j<a.length; j++) {
							if(a[j].checked){
								tmp=true;
							}
						}
					} else {
						if ( a.checked )
						{
							tmp=true;
						}

					}

				}

				if(!tmp){
					alert(josa(kname,'À»¸¦') + " ¼±ÅÃÇØÁÖ¼¼¿ä.");
					return false;
				}
			}

			if (value=="")
			{
				alert(josa(kname,'À»¸¦')  + " ÀÔ·ÂÇØÁÖ¼¼¿ä.");
				//elArr[i].select();
				elArr[i].focus();
				return false;
			}


			var thePat = valid[v];
			if(!thePat) continue;

			var gotIt = thePat.exec(value);

			if(!gotIt){
				if(v=="eng"){
					alert(josa(kname,'Àº´Â')  + " ¿µ¹®°ú ¼ýÀÚ¸¸ ÀÔ·Â°¡´ÉÇÕ´Ï´Ù.");
				}else if(v=="num"){
					alert(josa(kname,'Àº´Â') + " ¼ýÀÚ¸¸ ÀÔ·Â°¡´ÉÇÕ´Ï´Ù.");
				}else{
					alert(kname+ "ÀÇ Çü½ÄÀÌ Àß¸øµÇ¾ú½À´Ï´Ù.");
				}
				elArr[i].select();
				elArr[i].focus();
				return false;
			}

			if(elArr[i].getAttribute("maxlength")){
				if(lenb(value)>parseInt(elArr[i].getAttribute("maxlength"))){
					alert(josa(kname,'Àº´Â')  + " ÇÑ±Û " + elArr[i].getAttribute("maxlength")/2 + "ÀÚ ÀÌ»ó ¶Ç´Â ¿µ¹®/¼ýÀÚ "+elArr[i].getAttribute("maxlength")+"ÀÚ ÀÌ»ó ÀÔ·ÂÇÒ ¼ö ¾ø½À´Ï´Ù. (ÃÖ´ë "+elArr[i].getAttribute("maxlength")+"byte/ÇöÀç "+lenb(value)+"byte)");
					elArr[i].focus();
					return false;
				}
			}

			if(elArr[i].getAttribute("minlength")){
				if(lenb(value)<parseInt(elArr[i].getAttribute("minlength"))){
					alert(josa(kname,'Àº´Â')  + " ÇÑ±Û " + elArr[i].getAttribute("minlength")/2 + "ÀÚ ÀÌ»ó ¶Ç´Â ¿µ¹®/¼ýÀÚ "+elArr[i].getAttribute("minlength")+"ÀÚ ÀÌ»ó ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù.. (ÃÖ¼Ò "+elArr[i].getAttribute("minlength")+"byte/ÇöÀç "+lenb(value)+"byte)");
					elArr[i].focus();
					return false;
				}
			}
			

		
		}
	}
	return true;
}





function isEmail(s)
{
  return s.search(/^\s*[\w\~\-\.]+\@[\w\~\-]+(\.[\w\~\-]+)+\s*$/g)>=0;
}

function isnull(f,str)
{
	if (f==null || f.value==""){
		alert(str);
		try{
			f.focus();
		}catch(e){}
		return true;
	}else{
		return false;
	}
}

function only_number(){
	if ((event.keyCode>=48 && event.keyCode<=57) || event.keyCode==13){
		return true;
	}else{
		return false;
	}
}

function only_eng(){
	if ((event.keyCode>=48 && event.keyCode<=57) || (event.keyCode>=65 && event.keyCode<=90) || (event.keyCode>=97 && event.keyCode<=122) || event.keyCode==45 || event.keyCode==95 || event.keyCode==13){
		return true;
	}else{
		return false;
	}
}

function isEng(str){
	var chrcode=0;
	for (i=0;i<str.length;i++){
		chrcode=str.charCodeAt(i);
		if (!((chrcode>=48 && chrcode<=57) || (chrcode>=65 && chrcode<=90) || (chrcode>=97 && chrcode<=122))){
			return false;
		}
	}
	return true;
}

function JuminCheck(jumin1,jumin2) {
	var resno=jumin1 + "-" + jumin2;

	// ÁÖ¹Î¹øÈ£ÀÇ ÇüÅÂ¿Í 7¹øÂ° ÀÚ¸®(¼ºº°) À¯È¿¼º °Ë»ç
	fmt = /^\d{6}-[1234]\d{6}$/;
	if (!fmt.test(resno)) {
		return false;
	}

	// ³¯Â¥ À¯È¿¼º °Ë»ç
	var birthYear = (resno.charAt(7) <= "2") ? "19" : "20";
	if (!isDate(birthYear+jumin1))
	{
		return false;
	}

	// Check Sum ÄÚµåÀÇ À¯È¿¼º °Ë»ç
	buf = new Array(13);
	for (i = 0; i < 6; i++) buf[i] = parseInt(resno.charAt(i));
	for (i = 6; i < 13; i++) buf[i] = parseInt(resno.charAt(i + 1));

	multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
	for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);

	if ((11 - (sum % 11)) % 10 != buf[12]) {
		return false;
	}
	return true;
}

function isDate(dt){
	var birthYear = dt.substr(0, 4);
	var birthMonth = dt.substr(4, 2) - 1;
	var birthDate = dt.substr(6, 2);
	var birth = new Date(birthYear, birthMonth, birthDate);

	if ( birth.getYear() % 100 != birthYear.substr(2, 2) || birth.getMonth() != birthMonth || birth.getDate() != birthDate) {
		return false;
	}
	return true;
}

function lenb(str){
	var chrcode;
	var leng=0;
	for (i=0;i<str.length;i++){
		chrcode=str.charCodeAt(i);
		if (chrcode<=127)
			leng++;
		else
			leng+=2;
	}
	return leng;
}

// Á¶»ç ºÙÀÌ±â
String.prototype.hasFinalConsonant = function(str) { 
    str = this != window ? this : str; 
    var strTemp = str.substr(str.length-1); 
    return ((strTemp.charCodeAt(0)-16)%28!=0); 
} 

function josa(str,tail) { 
    return str + ((str.hasFinalConsonant()) ? tail.substring(0,1) : tail.substring(1,2)); 
} 


// µÎ¹øÂ° ÆÄ¶ó¹ÌÅÍ·Î ³Ñ±ä Æ¯Á¤ ¹®ÀÚ Ã¼Å© 
function isCharaterCheck(arg_v,arg_ch)
{
	for (i=0; i < arg_v.length; i++)
	{
		var substr = arg_v.substring(i, i+1);		
		if (arg_ch.indexOf(substr) < 0) 
			return false;	
		
	}
	
	return 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;
}

// ¼ýÀÚ Ã¼Å©
function isNumber(arg) {
	for (i =0 ; i < arg.length; i++) {
  	
	  	if (arg.charCodeAt(i) < 48 || arg.charCodeAt(i) > 57) {
	  		return false;
	  	}
	}
	return true;
}

//¹®ÀÚ¿­ ¾ÈÀÇ °ø¹é Áö¿ì±â
function deleteSpace(str) { 
	var out = "";

	for (common_i = 0; common_i < str.length; common_i++) { 
		if (str.charAt(common_i) == " ") { 
			continue;
		}
		out += str.charAt(common_i); 
	} 
	return out; 
}


// ¹®ÀÚ Ã¼Å©
function Check_nonCharNumeric(id_text)
{
		var nonchar = '~`!@#$%^&*()-_=+\|<>?,./;:"';
		var numeric = '1234567890';
		var nonkorean = nonchar+numeric; 
		
		var i ; 
		for ( i=0; i < id_text.length; i++ )  {
			if( nonkorean.indexOf(id_text.substring(i,i+1)) > 0) {
				break ; 
			}
		}
		if ( i != id_text.length ) {
			return false ; 
		}
		else{
			return true ;
		} 

		return false;
}
	// Æ¯¼ö¹®ÀÚ Ã¼Å©
function Check_nonChar(id_text)
{
		//var nonchar = '~`!@#$%^&*()-_=+\|<>?,./;:"';
		var nonchar = '`@#$%&\|<>;"';

		var i ; 
		for ( i=0; i < id_text.length; i++ )  {
			if( nonchar.indexOf(id_text.substring(i,i+1)) > 0) {
				break ; 
			}
		}
		if ( i != id_text.length ) {
			return false ; 
		}
		else{
			return true ;
		} 

		return false;
}

//¹®ÀÚ¿­ °³¼ö
function LengthCheck(data) {

		var count = 0;
		for ( var i=0; i < data.length; i++ ) {
			if( data.charCodeAt(i) < 127 )
				count++;
			else
				count = count + 2;
		}
		
		return count;
}
	
//Only Korean
function Check_onlyKorean(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 Check_nonTag(id_text)
{
		var opentag = '><';
		var i ; 
		for ( i=0; i < id_text.length; i++ )  {
			if( opentag.indexOf(id_text.substring(i,i+1)) > 0) {
				break ; 
			}
		}
		if ( i != id_text.length ) {
			return false ; 
		}
		else{
			return true ;
		} 

		return false;
}

function checkTag(str)
{
  var regArr = new Array('(<)[\\s]*(table)' , '(<)[\\s]*(\\/)[\\s]*(table)' ,
                         '(<)[\\s]*(tr)'    , '(<)[\\s]*(\\/)[\\s]*(tr)'    ,
                         '(<)[\\s]*(td)'    , '(<)[\\s]*(\\/)[\\s]*(td)'    ,
                         '(<)[\\s]*(div)'   , '(<)[\\s]*(\\/)[\\s]*(div)'   ,
                         '(<)[\\s]*(iframe)', '(<)[\\s]*(\\/)[\\s]*(iframe)',
                         '(<)[\\s]*(script)', '(<)[\\s]*(\\/)[\\s]*(script)',
                         '(<)[\\s]*(embed)' , '(<)[\\s]*(\\/)[\\s]*(embed)');
  var strMyRe;
  strMyRe = '/';
  for( i=0; i<regArr.length; i++ )
  {
    if( i == regArr.length-1 )
    {
      strMyRe += regArr[i];
      strMyRe += '/gi';
    }
    else
    {
      strMyRe += regArr[i];
      strMyRe += '|';
    }
  }
  myRe = eval(strMyRe);
  //alert(strMyRe);
  reArray = str.match(myRe);
  if( reArray != null )
  {
    var alvar = "";
    for( j=0; j<reArray.length; j++ )
    {
      if( j != reArray.length-1 )
        alvar += reArray[j] + ">,";
      else
        alvar += reArray[j] + ">";
    }
    alert(alvar + " °ú °°Àº ÅÂ±×´Â »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.");
    return false;
  }
  else
  {
    return true;
  }
  //if( myRe.test(str) )
  //  alert("»ç¿ë ¸ø ÇÒ ÅÂ±×°¡ µé¾îÀÖ´Ù.");
  // else
  //  alert("»ç¿ë ¸ø ÇÒ ÅÂ±×°¡ µé¾îÀÖÁö ¾Ê´Ù.");
}

// ÆË¾÷ À©µµ¿ì
function MM_open(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
