// ¿¡·¯¸Þ½ÃÁö Æ÷¸ä Á¤ÀÇ ///
var NO_BLANK_TEXT = "{name+À»¸¦} ÀÔ·ÂÇØÁÖ¼¼¿ä.";
var NO_BLANK_SELECT = "{name+À»¸¦} ¼±ÅÃÇØÁÖ¼¼¿ä.";
var NOT_VALID = "{name+ÀÌ°¡} ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù";
var TOO_LONG = "{name}ÀÇ ±æÀÌ°¡ ÃÊ°úµÇ¾ú½À´Ï´Ù (ÃÖ´ë {maxbyte}¹ÙÀÌÆ®)";
var STRING_FR  = 6
var STRING_TO  = 10
var old_menu = '';
var old_cell = '';

/// ½ºÆ®¸µ °´Ã¼¿¡ ¸Þ¼Òµå Ãß°¡ ///
String.prototype.trim = function(str) {
	str = this != window ? this : str;
	return str.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

String.prototype.hasFinalConsonant = function(str) {
	str = this != window ? this : str;
	var strTemp = str.substr(str.length-1);
	return ((strTemp.charCodeAt(0)-16)%28!=0);
}

String.prototype.bytes = function(str) {
	str = this != window ? this : str;
  var len = 0;
  for(j=0; j<str.length; j++) {
		var chr = str.charAt(j);
		len += (chr.charCodeAt() > 128) ? 2 : 1
	}
	return len;
}

// 	Ãµ´ÜÀ§ ÄÞ¸¶ ºÙÈ÷±â (var won = "100000"; won.comma() => 100,000)
String.prototype.comma=function(){
var l_text=this;
var l_pattern=/^(-?\d+)(\d{3})($|\..*$)/;

  if(l_pattern.test(l_text)){
    l_text=l_text.replace(l_pattern,function(str,p1,p2,p3)
    {
      return p1.comma() + ("," + p2 + p3);
    });
  }
  return l_text;
} 


/// ½ÇÁúÀû ÆûÃ¼Å© ÇÔ¼ö ///
function validate(form) {
	for (i = 0; i < form.elements.length; i++ ) {
		var el = form.elements[i];
		if (el.tagName == "FIELDSET" || el.tagName.toLowerCase() == "object") continue;
		if(el.tagName!="SELECT"){
			el.value = el.value.trim();
		}

		var fitbyte = el.getAttribute("FITBYTE");
		var minbyte = el.getAttribute("MINBYTE");
		var maxbyte = el.getAttribute("MAXBYTE");
		var option = el.getAttribute("OPTION");
		var match = el.getAttribute("MATCH");
		var glue = el.getAttribute('GLUE');
		
		if (el.getAttribute("REQUIRED") != null) {	//ÇÊ¼ö »çÇ×¿¡ ´ëÇÑ Ã³¸®
			if(el.getAttribute("disabled")==true) continue;
		    if (el.type == "radio"){
		        obj = eval("form." + el.name);

		        bool = true;
		        if(obj.length)
		        {
			        for(rad = 0; rad<obj.length; rad++){
			            if(obj[rad].checked == true){
			                bool = false;
			            }
			        }
		        }
		        else
		        {
		        	if(obj.checked == true){
		                bool = false;
		            }
		        }

		        if(bool){
		            return doError(el,NO_BLANK_SELECT,"del");
		        }
		    }
		    else{
			    if (el.value == null || el.value == "") {
				    if(el.tagName=="SELECT") {
				        return doError(el,NO_BLANK_SELECT);
				    }
				    else {
				        return doError(el,NO_BLANK_TEXT);
				    }
			    }
			}
		}

		if (fitbyte != null) { //¹®ÀÚ¿­ ±æÀÌ Ã¼Å©
			if (el.value.length != parseInt(fitbyte)) {
				return doError(el,"{name+Àº´Â} " + fitbyte + "ÀÚ¸¦ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù.");
			}
		}

		if (minbyte != null) {
			if (el.value.length < parseInt(minbyte)) {
				return doError(el,"{name+Àº´Â} ÃÖ¼Ò "+minbyte+"ÀÚ ÀÌ»ó ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù.");
			}
		}

		if (maxbyte != null && el.value != "") { //¹®ÀÚ¿­ ±æÀÌ Ã¼Å©
			var len = 0;
			if (el.value.length > parseInt(maxbyte)) {
				return doError(el,"{name}ÀÇ ÀÔ·Â °¡´ÉÇÑ ÃÖ´ë ±ÛÀÚ´Â "+maxbyte+" Byte ÀÔ´Ï´Ù. ÇöÀç " + el.value.bytes + " Byte ¸¦ ÀÔ·Â ÇÏ¿´½À´Ï´Ù");
			}
		}

		if (match && (el.value != form.elements[match].value)) return doError(el,"{name+ÀÌ°¡} ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù");  //µÎ°³ÀÇ ¹®ÀÚ¿­ ÀÏÄ¡ Ã¼Å©

		if (option != null && el.value != "") {   /// Æ¯¼ö ÆÐÅÏ °Ë»ç ÇÔ¼ö Æ÷¿öµù ///
			if (el.getAttribute('SPAN') != null) {
				var _value = new Array();
				for (span=0; span<el.getAttribute('SPAN');span++ ) {
					_value[span] = form.elements[i+span].value;
				}
				var value = _value.join(glue == null ? '' : glue);
				if (!funcs[option](el,value)) return false;
			} else {
				if (!funcs[option](el)) return false;
			}
		}
	}
	return true;
}


// Textarea ±ÛÀÚ¼ö Á¶Àý
// ÀÔ·Â¿¹Á¦ <textarea onKeyPress="fnChkRemark(this,'50')">  -- fnChkRemark(ÅØ½ºÆ®°ª, ÀÚ¸´¼ö)
function fnChkRemark(obj, strCnt) {
	var strtempRemark = obj.value;
	var len = 0;
	var tString = '';
	for(j=0; j< strtempRemark.length; j++) {
		var chr = strtempRemark.charAt(j);
		len += (chr.charCodeAt() > 128) ? 2 : 1;
		if (len <= strCnt)
			tString += chr;
	}
	if (len >= strCnt) {
		alert(strCnt + 'ÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä. ');
		obj.focus();
		obj.value = tString;
		return false;
	}
}


function josa(str,tail) {
	return (str.hasFinalConsonant()) ? tail.substring(0,1) : tail.substring(1,2);
}


function doError(el,type,action) { //¿¡·¯ Ã³¸® ÇÔ¼ö
	var pattern = /{([a-zA-Z0-9_]+)\+?([°¡-Èþ]{2})?}/;
	var name = (hname = el.getAttribute("HNAME")) ? hname : el.getAttribute("NAME");
	pattern.exec(type);
	var tail = (RegExp.$2) ? josa(eval(RegExp.$1),RegExp.$2) : "";
	alert(type.replace(pattern,eval(RegExp.$1) + tail));
	if (action == "sel") {
		el.select();
	} else if (action == "del")	{
		el.value = "";
	}

	// È÷µç ÇÊµå, display:none, readonly °³Ã¼´Â Æ÷Ä¿½º½Ã ¿¡·¯³ª¹Ç·Î ¿¡·¯Ã³¸® Ãß°¡
	try
	{
		el.focus();
	}
	catch (e)
	{}
	return false;
}

/// Æ¯¼ö ÆÐÅÏ °Ë»ç ÇÔ¼ö ¸ÅÇÎ ///
var funcs = new Array();
funcs['email'] = isValidEmail;
funcs['phone'] = isValidPhone;
funcs['mobile'] = isValidMobile;
funcs['userid'] = isValidUserid;
funcs['pass'] = isValidPass;
funcs['hangul'] = hasHangul;
funcs['nick'] = hasNick;
funcs['number'] = isNumber;
funcs['numeric'] = isNumeric;
funcs['engonly'] = alphaOnly;
funcs['jumin'] = isValidJumin;
funcs['bizno'] = isValidBizNo;
funcs['domain'] = isValidDomain;
funcs['pass1'] = isValidPass1;


/// ÆÐÅÏ °Ë»ç ÇÔ¼öµé ///
function isValidEmail(el,value) {
	var value = value ? value : el.value;
	var pattern = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	return (pattern.test(value)) ? true : doError(el,NOT_VALID);
}

function validChar(value){
	var alpbool = false;
	var numbool = false;
	
	for(z=-1 ; z<value.length-1; z++){
		if(isNaN(value.substr(z+1,1))){
			alpbool = true;
		} else {
			numbool = true;
		}
	}
	
	return (alpbool && numbool);
}

function isValidUserid(el) {
	var pattern = /^[a-zA-Z]{1}[a-zA-Z0-9_]{5,11}$/;
	return (pattern.test(el.value) && validChar(el.value)) ? true :doError(el,"{name+Àº´Â} Ã¹ ¹®ÀÚ´Â ¿µ¹®ÀÌ¾î¾ß ÇÏ¸ç\n\n6ÀÚÀÌ»ó 12ÀÚ ÀÌÇÏ ¿µ¹®/¼ýÀÚ Á¶ÇÕÀÌ¾î¾ß ÇÕ´Ï´Ù");
}

function isValidPass(el) {
	var pattern = /^[a-zA-Z0-9]{5,11}$/;
	return (pattern.test(el.value) && validChar(el.value)) ? true :doError(el,"{name+Àº´Â} 6ÀÚÀÌ»ó 12ÀÚ ÀÌÇÏÀÌ¾î¾ß ÇÏ°í,\n\n¿µ¹®/¼ýÀÚ Á¶ÇÕÀÌ¾î¾ß ÇÕ´Ï´Ù");
}

//ºñ¹Ð¹øÈ£ Æ¯¼ö±âÈ£ ÀÔ·Â°¡´É
function isValidPass1(el) {
	var pattern = /^[a-zA-Z0-9\!\"\#\$\%\&\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~]{5,11}$/;
	return (pattern.test(el.value)) ? true :doError(el,"{name+Àº´Â} 6ÀÚÀÌ»ó 12ÀÚ ÀÌÇÏÀÌ¾î¾ß ÇÏ°í,\n\n¿µ¹®/¼ýÀÚ Á¶ÇÕÀÌ¾î¾ß ÇÕ´Ï´Ù");
}

function hasHangul(el) {
	var pattern = /^[°¡-Èþ]+$/;
	return (pattern.test(el.value)) ? true : doError(el,"{name+Àº´Â} ¹Ýµå½Ã ÇÑ±Û·Î¸¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù");
}

function hasNick(el) {
	var pattern = /^[°¡-Èþa-zA-Z0-9]+$/;
	return (pattern.test(el.value)) ? true : doError(el,"{name+Àº´Â} Æ¯¼ö¹®ÀÚ¸¦ »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù");
}

function alphaOnly(el) {
	var pattern = /^[a-zA-Z/ ]+$/;
	return (pattern.test(el.value)) ? true : doError(el,"{name+Àº´Â} ¹Ýµå½Ã ¿µ¹®À¸·Î¸¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù");
}

function isNumber(el) {
	var pattern = /^[0-9]+$/;
  return (pattern.test(el.value)) ? true : doError(el,"{name+Àº´Â} ¹Ýµå½Ã ¼ýÀÚ¸¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù");
}

function isNumeric(el) {
  return (!isNaN(el.value)) ? true : doError(el,"{name+Àº´Â} ¹Ýµå½Ã ¼ýÀÚÇü½Ä¸¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù");
}

function isValidJumin(el,value) { //ÁÖ¹Î¹øÈ£ Ã¼Å©
    var pattern = /^([0-9]{6})-?([0-9]{7})$/;
	var num = value ? value : el.value;
   
    return (pattern.test(num)) ? true : doError(el,NOT_VALID);
    
    
    /* ¿Ü±¹ÀÎÀÏ °æ¿ì Ã¼°è °Ë»ç ºÒÇÊ¿ä
    if (!pattern.test(num)) return doError(el,NOT_VALID);
    num = RegExp.$1 + RegExp.$2;

	var sum = 0;
	var last = num.charCodeAt(12) - 0x30;
	var bases = "234567892345";
	for (var i=0; i<12; i++) {
		if (isNaN(num.substring(i,i+1))) return doError(el,NOT_VALID);
		sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30);
	}
	var mod = sum % 11;
	return ((11 - mod) % 10 == last) ? true : doError(el,NOT_VALID);
	*/
}

function isValidBizNo(el, value) { //»ç¾÷¹øÈ£ Ã¼Å©
    var pattern = /([0-9]{3})-?([0-9]{2})-?([0-9]{5})/;
	var num = value ? value : el.value;
    if (!pattern.test(num)) return doError(el,NOT_VALID);
    num = RegExp.$1 + RegExp.$2 + RegExp.$3;
    var cVal = 0;
    for (var i=0; i<8; i++) {
        var cKeyNum = parseInt(((_tmp = i % 3) == 0) ? 1 : ( _tmp  == 1 ) ? 3 : 7);
        cVal += (parseFloat(num.substring(i,i+1)) * cKeyNum) % 10;
    }
    var li_temp = parseFloat(num.substring(i,i+1)) * 5 + '0';
    cVal += parseFloat(li_temp.substring(0,1)) + parseFloat(li_temp.substring(1,2));
    return (parseInt(num.substring(9,10)) == 10-(cVal % 10)%10) ? true : doError(el,NOT_VALID);
}

function isValidPhone(el,value) {//ÀüÈ­¹øÈ£
    var pattern = /([0-9]{2,3})-?([0-9]{3,4})-?([0-9]{4})/;
	var num = value ? value : el.value;
	if (num == null || num == "") {
		return doError(el,NO_BLANK);
	}
	else {
	  return (pattern.test(num)) ? true : doError(el,"³ª¸ÓÁö {name}À»(¸¦) ÀÔ·ÂÇØ ÁÖ¼¼¿ä.");
	}
}

function isValidMobile(el,value) {//ÈÞ´ëÀüÈ­¹øÈ£
    var pattern = /([0-9]{3})-?([0-9]{3,4})-?([0-9]{4})/;
	var num = value ? value : el.value;
	if (num == null || num == "") {
		return doError(el,NO_BLANK);
	}
	else {
	  return (pattern.test(num)) ? true : doError(el,"³ª¸ÓÁö {name}À»(¸¦) ÀÔ·ÂÇØ ÁÖ¼¼¿ä.");
	}
}


function isValidDomain(el,value) { //µµ¸ÞÀÎ Ã¼Å©
	var pattern = /^.+(\.[a-zA-Z]{2,3})$/;
	return (pattern.test(el.value)) ? true : doError(el,NOT_VALID);
}


/**
    * ºñ¹Ð¹øÈ£ À¯È¿¼º Ã¼Å© ·ÎÁ÷ 
    */
var MIN_SIZE = 3; //ÃÖ¼Ò 3°³ÀÇ ¹®ÀÚ¸¦ ºñ±³ÇÑ´Ù.
var sequence = new Array( "YTREWQWERTYUIOPASDFGHJKLZXCVBNMNBVCXZLKJHGFDSAPOIUYTREWQWERTY",
                     "ytrewqwertyuiopasdfghjklzxcvbnmnbvcxzlkjhgfdsapoiuytrewqwerty",
                     "VWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDE",
                     "vwxyzabcdefghijklmnopqrstuvwxyzabcde",
                     "67890123456789098765432109876" );

function isValidPassword( val, userid, corpjno, mobno, telno, cotelno )
{
    if ( val.length == 0 ) {
        alert( "ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇÏ¼¼¿ä." );

        return false;
    }

    for ( var i = 0; i < sequence.length; i++ ) {
        for ( var j = MIN_SIZE; val.length >= j; j++ ) {
            if ( sequence[i].indexOf( val.substring( j - MIN_SIZE, j ) ) >= 0 ) {
                alert( "°í°´´ÔÀÇ Á¤º¸È£È£¸¦ À§ÇÏ¿© Å°º¸µå ¼ø¼­ È¤Àº ¿¬¼ÓµÇ´Â ±ÛÀÚ È¤Àº ¼ýÀÚ¸¦ ¼¼ÀÚ¸®ÀÌ»ó »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.\n¿¹) abc, 123, qwe µî" );

                return false;
            }
        }
    }
    
	mobno	= mobno.replace(' ','');
	telno 	= telno.replace(' ','');
	cotelno	= cotelno.replace(' ','');

   	for ( var j = MIN_SIZE; val.length >= j; j++ ) {
        var temp = val.substring( j - MIN_SIZE, j );

        if ( userid.indexOf( temp ) >= 0 ) {
            alert( "°í°´´ÔÀÇ Á¤º¸È£È£¸¦ À§ÇÏ¿© ¾ÆÀÌµð°¡ Æ÷ÇÔµÈ ºñ¹Ð¹øÈ£´Â ÀÌ¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.(" + temp + ")" );

            return false;
        }

        if ( corpjno.indexOf( temp ) >= 0 ) {
            var msg = "ÁÖ¹Îµî·Ï¹øÈ£";

            if ( corpjno.length == 10 ) msg = "»ç¾÷ÀÚµî·Ï¹øÈ£";

            alert( "°í°´´ÔÀÇ Á¤º¸È£È£¸¦ À§ÇÏ¿© " + msg + "°¡ Æ÷ÇÔµÈ ºñ¹Ð¹øÈ£´Â ÀÌ¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.(" + temp + ")" );

            return false;
        }

        if ( mobno != "" && mobno.length > 0 && mobno.indexOf( temp ) >= 0 ) {
            alert( "°í°´´ÔÀÇ Á¤º¸È£È£¸¦ À§ÇÏ¿© ÇÚµåÆù¹øÈ£°¡ Æ÷ÇÔµÈ ºñ¹Ð¹øÈ£´Â ÀÌ¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.(" + temp + ")" );

            return false;
        }
        if ( telno != "" && telno.length > 0 && telno.indexOf( temp ) >= 0 ) {
            alert( "°í°´´ÔÀÇ Á¤º¸È£È£¸¦ À§ÇÏ¿© ÀÚÅÃÀüÈ­¹øÈ£°¡ Æ÷ÇÔµÈ ºñ¹Ð¹øÈ£´Â ÀÌ¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.(" + temp + ")" );

            return false;
        }
        if ( cotelno != "" && cotelno.length > 0 && cotelno.indexOf( temp ) >= 0 ) {
            alert( "°í°´´ÔÀÇ Á¤º¸È£È£¸¦ À§ÇÏ¿© Á÷ÀåÀüÈ­¹øÈ£°¡ Æ÷ÇÔµÈ ºñ¹Ð¹øÈ£´Â ÀÌ¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.(" + temp + ")" );

            return false;
        }
    }

    var cnt = 0;
    var prev = val.charAt( 0 );

    for ( var i = 1; i < val.length; i++ ) {
        if ( prev == val.charAt( i ) ) cnt++;
        else cnt = 0;
        prev = val.charAt( i );

        if ( cnt >= MIN_SIZE - 1 ) {
            alert( "°í°´´ÔÀÇ Á¤º¸È£È£¸¦ À§ÇÏ¿© µ¿ÀÏÇÑ ¹®ÀÚ¸¦ ¿¬¼Ó ¼¼¹øÀÌ»ó »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.\n¿¹) 1111, qqqq" );

            return false;
        }
    }

    return true;
}
	