// frmCheck.js ÆÄÀÏ

/********************************************************************
*
* Form °ü·Ã ½ºÅ©¸³Æ® ÇÔ¼ö ¸ðÀ½
*
*******************************************************************/
// Æû °ËÁõ ÇÔ¼ö
function checkForm(f) {
    var fLen = f.elements.length;
    var fObj;   // Æû ¿ä¼Ò
    var fTyp;   // Æû ¿ä¼Ò Type
    var fVal;   // Æû ¿ä¼Ò Value
    var fMsg;   // °æ°í ¸Þ½ÃÁö ¼Ó¼º
    var fNum;   // ¼ýÀÚ¸¸ ÀÔ·Â ¼Ó¼º
    var fMax;   // ÃÖ´ë ±æÀÌ ÁöÁ¤
    var fMin;   // ÃÖ¼Ò ±æÀÌ ÁöÁ¤
    var fMxN;   // ÃÖ´ë°ª ÁöÁ¤
    var fMnN;   // ÃÖ¼Ò°ª ÁöÁ¤
    var fMal;   // ¸ÞÀÏ FORMAT
	var fMid;   // ¸ÞÀÏ FORMAT

    for (i=0;i<fLen;i++) {
        fObj = f.elements[i];
        fTyp = toUpperCase(fObj.getAttribute("type"));
        fVal = fObj.value;
        fMsg = fObj.getAttribute("msg");        // °æ°í ¸Þ½ÃÁö
        fNum = fObj.getAttribute("chknum");     // ¼ýÀÚ¸¸ ±âÀÔ °¡´ÉÇÏµµ·Ï
        fMax = fObj.getAttribute("maxlen");     // ÃÖ´ë ÀÔ·Â±ÛÀÚ¼ö Á¦ÇÑ
        fMin = fObj.getAttribute("minlen");     // ÃÖ¼Ò ÀÔ·Â±ÛÀÚ¼ö Á¦ÇÑ
        fMxN = fObj.getAttribute("maxnum");     // ÃÖ´ë ¼ýÀÚ Á¦ÇÑ
        fMnN = fObj.getAttribute("minnum");     // ÃÖ¼Ò ¼ýÀÚ Á¦ÇÑ
        fMal = fObj.getAttribute("chkmail");    // ÀÌ¸ÞÀÏ Ã¼Å©
		fMid = fObj.getAttribute("chkMid");    // ¾ÆÀÌµðÃ¼Å©
		fHng = fObj.getAttribute("chkhng");    // ÇÑ±ÛÃ¼Å©
        
		
        if (fMsg != null && (fTyp == "TEXT" || fTyp == "HIDDEN" || fTyp == "TEXTAREA" || fTyp == "PASSWORD") && fVal.replace(/ /gi,"") == "") {
            alert(fMsg + " ÀÔ·ÂÇØ ÁÖ¼¼¿ä");
            if (fTyp != "HIDDEN") {
					try{
					try{fObj.focus();}catch(e){};
					}catch(e){
					}
				}
            return false;
        }
        if (fMsg != null && (fTyp == "SELECT-ONE" || fTyp == "SELECT-MULTIPLE") && fVal =="") {
            alert(fMsg + " ¼±ÅÃÇØ ÁÖ¼¼¿ä");
            try{fObj.focus();}catch(e){}; return false;
        }
        if (fMsg != null && (fTyp == "RADIO" || fTyp == "CHECKBOX") && checkChecked(fObj) == false) {
            alert(fMsg + " ¼±ÅÃÇØ ÁÖ¼¼¿ä");
            try{fObj.focus();}catch(e){}; return false;
        }
        if (fNum != null && isNaN(fVal.replace(/,/g,""))) {
            alert("¼ýÀÚ·Î¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä");
            try{fObj.focus();}catch(e){}; return false;
        }
        if (fMax != null && fMax < getLen(fVal)) {
            alert("ÀÔ·ÂµÈ ±ÛÀÚ¼ö°¡ "+fMax+"ÀÚº¸´Ù ÀÛ¾Æ¾ßÇÕ´Ï´Ù.\n(¿µ¹® "+fMax+"ÀÚ, ÇÑ±Û "+Math.floor(fMax/2)+"ÀÚ ±îÁö °¡´ÉÇÕ´Ï´Ù.)");
            try{fObj.focus();}catch(e){}; return false;
        }
        if (fMin != null && fMin > getLen(fVal)) {
            alert("ÀÔ·ÂµÈ ±ÛÀÚ¼ö°¡ "+fMin+"ÀÚº¸´Ù Ä¿¾ßÇÕ´Ï´Ù.\n(¿µ¹® "+fMin+"ÀÚ, ÇÑ±Û "+Math.floor(fMin/2)+"ÀÚ ÀÌ»ó °¡´ÉÇÕ´Ï´Ù.)");
            try{fObj.focus();}catch(e){}; return false;
        }
        if (fMxN != null && parseInt(fMxN) < parseInt(fVal)) {
            alert("ÀÔ·ÂµÈ ¼ýÀÚ´Â "+fMxN+"º¸´Ù ÀÛ¾Æ¾ßÇÕ´Ï´Ù.");
            try{fObj.focus();}catch(e){}; return false;
        }
        if (fMnN != null && parseInt(fMnN) > parseInt(fVal)) {
            alert("ÀÔ·ÂµÈ ¼ýÀÚ´Â "+fMnN+"º¸´Ù Ä¿¾ßÇÕ´Ï´Ù.");
            try{fObj.focus();}catch(e){}; return false;
        }
        if (fMal != null && checkEmail(fVal) == false && fVal != "") {
            alert("ÀÌ¸ÞÀÏ ÁÖ¼Ò°¡ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù");
            try{fObj.focus();}catch(e){}; return false;
        }
		if (fMid != null && ckUID(fObj) == false && fVal != "") {
            alert("¾ÆÀÌµð°¡ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù");
            try{fObj.focus();}catch(e){}; return false;
        }
		if(fHng !=null && ckHng(fVal)==false){
            alert("ÇÑ±ÛÀº »ç¿ëÇÏ½Ç¼ö ¾ø½À´Ï´Ù.");
            try{fObj.focus();}catch(e){}; return false;		
		}
    }
    return true;
}

// Æû¿¡ ÇØ´çÇÏ´Â ÄÁÆ®·ÑµéÀÇ ±âº»°ª ½±°Ô ¼ÂÆÃÇØ ÁÖ±â
function initForm(f)    {
    var nLen;   // form ¿ä¼ÒÀÇ °¹¼ö
    var ival;   // °¢ ¿ä¼ÒÀÇ default value °ª Áï! ÃÊ±âÈ­ÇÏ°íÀÚ ÇÏ´Â°ª
    var fTyp;   // form ¿ä¼ÒÀÇ Å¸ÀÔ(select, radio, checkbox...)


	for (var i = 0; i < f.elements.length; i++) {

		fTyp = toUpperCase(f.elements[i].type);
        ival = f.elements[i].getAttribute("ival");


       	if(f.elements[i].getAttribute("xmlOption") != null && f.elements[i].getAttribute("xmlOption")!="ok"){// options °¡Á®¿À±â 
			//alert(f.elements[i].name);
			try{
		
			  Object.extend(f.elements[i],XmlOption);
			  f.elements[i].xmlOption="ok";

			  

			} catch(e){
				alert(f.elements[i].name+' XmlOption extend Error');
										
			}
		 }

		

		if (ival && fTyp == "SELECT-ONE") {
            nLen = f.elements[i].options.length;
            for (var j = 0; j < nLen; j++) {
                if (f.elements[i].options[j].value == ival)
                    f.elements[i].options[j].selected = true;
            }

        }
		
        if (fTyp == "SELECT-MULTIPLE") {
            nLen = f.elements[i].options.length;
            for (var j = 0; j < nLen; j++) {
                if (f.elements[i].options[j].value == f.elements[i].options[j].ival)
                    f.elements[i].options[j].selected = true;
            }
        }
        

		if (ival && (fTyp == "RADIO" || fTyp == "CHECKBOX")) {

			if( document.getElementsByName(f.elements[i].name).length >1 && fTyp == "CHECKBOX"){//multi
				if(ival.split(",").indexOf(f.elements[i].value) > -1 ){
					f.elements[i].checked = true;
				}
			}else{//alone
				
				if (f.elements[i].value == ival){
					f.elements[i].checked = true;
				}
			}
			
			
        }
		if ( (fTyp == "TEXT" ||fTyp == "PASSWORD") ) {
			       
					 if(f.elements[i].getAttribute("chknum") != null){//¼ýÀÚº¯È¯
						
						if(f.elements[i].getAttribute("chknum")=="F") {
							f.elements[i].value= f.elements[i].value.toString().replace(/[^0-9]/g,'');
							f.elements[i].onkeyup = function () { this.value = this.value.toString().replace(/[^0-9]/g,''); }
						}
						else {
							f.elements[i].value= numberF(f.elements[i].value.toString().replace(/[^0-9]/g,''));
							f.elements[i].onkeyup = function () { this.value = numberF(this.value.toString().replace(/[^0-9]/g,'')); }
						}
						
						f.elements[i].style.textAlign='right';
						
					 }
					
					if(f.elements[i].getAttribute("chkphone") != null){//ÀüÈ­¹øÈ£
						f.elements[i].value= phone_format(f.elements[i].value);
						f.elements[i].onkeyup = function () {this.value =phone_format(this.value); }
					}
					
					if(f.elements[i].getAttribute("cal") != null && f.elements[i].getAttribute("cal")!="ok"){//´Þ·Â
						//alert(f.elements[i].name);
						try{
							
							 new Carendal(f.elements[i]);
						
							f.elements[i].cal="ok";

						} catch(e){
							alert(f.elements[i].name+' Carendal class Error');
									
						}
					 }
					
					if(f.elements[i].getAttribute("autoText") != null){//ÀÚµ¿¿Ï¼º
						//alert("Name=>"+f.elements[i].name);
						try{
							
						   new autoText(f.elements[i],'/rss_data_sql.php','item=xmlval&'+f.elements[i].getAttribute("autotext"),null,false); 
						} catch(e){
							alert(f.elements[i].name+' autoText class Error');
									
						}
					 }
					 if(f.elements[i].getAttribute("autoText2") != null){//ÀÚµ¿¿Ï¼º
						//alert(f.elements[i].name);
						try{
							Object.extend(f.elements[i],autoText2);
							f.elements[i].initialize();
						   
						} catch(e){
							alert(f.elements[i].name+' autoText class Error');
									
						}
					 }
					 if(f.elements[i].getAttribute("memo") != null && f.elements[i].getAttribute("memo") != "ok"){//memo
						try{
						memo(f.elements[i]);
						f.elements[i].memo="ok";
						} catch(e){
						}
					 }
					

						
        }
    }
	
    return true;
}

function numberF(ostr){
		
		var str=ostr.toString().replace(/ /g,'');
		var sLen = str.length;
		if(sLen<1) return '';

				
		var rstr="";
		for(i=sLen-1;i>=0;i--){
			rstr = str.charAt(i) + rstr;
			if( (((sLen-i) % 3)==0) && i!=0) rstr = ','+rstr;

		}
		
		return rstr;		
}

// ¹è¿­ ¿ä¼ÒÀÏ °æ¿ì checked µÈ°ÍÀÌ ÀÖ´ÂÁö È®ÀÎ
function checkChecked(obj) {
    var fname = obj.form.name;
 
	var objnm = obj.name;
 
  //  var oElem = eval(fname+"."+objnm);
    var oElem = obj.form.elements[objnm];
    var ret = false;

    if (typeof(oElem.length) == "undefined") {
        if (oElem.checked) {
            ret = true;
        }
    } else {
        for (var i=0;i<oElem.length;i++) {
            if (oElem[i].checked) {
                ret = true;
            }
        }
    }
    return ret;
}
// ÀÌ¸ÞÀÏ À¯È¿¼º Ã¼Å©
function checkEmail(str){
    var reg = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
    if (str.search(reg) != -1) {
        return true;
    }
    return false;
}
// ¹®ÀÚ ±æÀÌ ¹ÝÈ¯ (¿µ¹® 1byte, ÇÑ±Û 2byte °è»ê)
function getLen(str) {
    var len;
    var temp;

    len = str.length;
    var tot_cnt = 0;

    for(k=0;k < len;k++){
        temp = str.charAt(k);
        if(escape(temp).length > 4)
            tot_cnt += 2;
        else
            tot_cnt++;
    }
    return tot_cnt;
}
// ´ë¹®ÀÚ º¯È¯ ex) toUpperCase(¹®ÀÚ)
function toUpperCase(str) {
    var ret;
    str != null ? ret = str.toUpperCase() : ret = "";
    return ret;
}
function ckHng(str){
	var len;
    var temp;
	
    len = str.length;
    
    for(k=0;k < len;k++){
        temp = str.charAt(k);
		if(escape(temp).length > 4) return false;
    }
	return true
}


       var spchar = new Array()
       spchar[0] =  "@";
       spchar[1] =  "#";
       spchar[2] =  "$";
       spchar[3] =  "%";
       spchar[4] =  "&";
       spchar[5] =  "*";
       spchar[6] =  "(";
       spchar[7] =  ")";
       spchar[8] =  "|";
       spchar[9] =  "\\";
       spchar[10] =  "[";
       spchar[11] =  "]";
       spchar[12] =  ";";
       spchar[13] =  ":";
       spchar[14] =  "\'";
       spchar[15] =  " ";
       spchar[16] =  "^";
       spchar[17] =  "|";
       spchar[18] =  ">";
       spchar[19] =  "<";
       spchar[20] =  "~";
       spchar[21] =  "`";
       spchar[22] =  "=";
       spchar[23] =  "+";
       spchar[24] =  "-";
       spchar[25] =  "'";
       spchar[26] =  "\"";
       spchar[27] =  "/";
       spchar[28] =  "{";
       spchar[29] =  "}";
       spchar[30] =  "!";
       spchar[31] =  "^";
       spchar[32] =  "_";
       spchar[33] =  "¡Ú";
    
       function checkSPchar(str)
       {
		   var i,success;
           success = true;
           for (i = 0;i<spchar.length;i++)
           {
               if (str.indexOf(spchar[i])>=0)
               { 
                  return true;
               }
           }
           return false;
       }  
    
       var spid = new Array()  
       spid[0]  = "¾Ë·¯ºä";
       spid[1]  = "¿î¿µ";
       spid[2]  = "°ü¸®";
       spid[3]  = "¿î¿µÀÚ";
       spid[4]  = "°ü¸®ÀÚ";
       spid[5]  = "½Ã»ð";
       spid[6]  = "¸¶½ºÅÍ";
       spid[7]  = "¸¶½ºÅ¸";
       spid[8]  = "À¥¸¶½ºÅÍ";
       spid[9]  = "À¥¸¶½ºÅ¸";    
       spid[10] = "¿î¿µÁø";
       spid[11] = "Å×½ºÆ®";
       spid[12] = "manager";
       spid[13] = "administrator";
       spid[14] = "master";
       spid[15] = "webmaster";
       spid[16] = "root";
       spid[17] = "sysop";
       spid[18] = "test";
       spid[19] = "superuser";
       spid[20] = "rloveu";
       spid[21] = "admin";
       spid[22] = "goodgames";
       spid[23] = "¾Ë·¯ºêÀ¯";
       spid[24] = "gameboy";
       spid[25] = "¾Ë·´";
       spid[26] = "goodgame";
       spid[27] = "¾îµå¹Î";
       spid[28] = "½Ã¼Ù";
       spid[29] = "·çÆ®";
       spid[30] = "¸Å´ÏÀú";
       spid[31] = "¸Å´ÏÁ®";
       spid[32] = "ÀÌ¿¡½º¾¾";
       spid[33] = "½´ÆÛÀ¯Àú";
       spid[34] = "¼öÆÛÀ¯Àú";
       spid[35] = "gamegirl";
       spid[36] = "À¥Áö±â";
       spid[37] = "info";
       spid[38] = "help";            
       spid[38] = "server";

       function checkSPid(str)
       {
           var i,success;
           success = true;
           for (i = 0;i<spid.length;i++)
           {
              if (str.indexOf(spid[i])>=0)
              {
                 return true;
              }
           }
           return false;
       }    

       function ckUID(obj)
       {
			obj.value = obj.value.toLowerCase();
			if (isEmptyString(obj.value) || checkSPchar(obj.value)) {
				alert("»ç¿ëÀÚID¸¦ Á¤È®È÷ ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿ä. \n\nÆ¯¼ö¹®ÀÚ¿Í ºóÄ­Àº Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù.");
				obj.focus();
				obj.select();
				return false;
			}
			if (noSpChar(obj.value) == 0) {
				alert("ID´Â ÇÑ±Û,Æ¯¼ö¹®ÀÚ¸¦ »ç¿ëÇÒ ¼ö ¾ø°í ¼ýÀÚ·Î ½ÃÀÛ ¸øÇÕ´Ï´Ù.");
				obj.value='';
				obj.focus();
				return false;
			}
			if (GetByteLen(obj.value) < 4) {
			   alert("»ç¿ëÀÚ ID´Â ÃÖ¼Ò ¿µ¹® 4ÀÚ, ÇÑ±Û 2ÀÚ ÀÌ»óÀÌ¾î¾ß ÇÕ´Ï´Ù.");
			   obj.focus();
			   obj.select();
			   return false;
			}
			if (GetByteLen(obj.value) > 20) {
			   alert("»ç¿ëÀÚ ID´Â 20ÀÚ ÀÌ³»·Î ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù.");
			   obj.focus();
			   obj.select();
			   return false;
			}
			if (checkSPid(obj.value)) {
			   alert("Çã¿ëµÇÁö ¾Ê´Â ID ÀÔ´Ï´Ù.");
			   obj.focus();
			   obj.select();
			   return false;
			}
			return true;
        }

	function isEmptyString(strText)
	{
		var strCheck = strText + "";
	 	if ((strCheck != "") && (strCheck != null)) {
  			for (i=0; i < strCheck.length; i++) {
   				if(strCheck.substring(i , i+1) == " ") return true;
	  		}
  			return false;
	 	}
	 	return true;
	}
	function IsAlphaNumeric(checkStr) 
	{
		var checkOK = "abcdefghijklmnopqrstuvwxyz0123456789";
		for (i = 0;  i < checkStr.length;  i++) {
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j)) break;
    		if (j == checkOK.length) {
      			return true;
      			break;
    		}
	  	}
  		return false;
	}
	function isNumeric(strText) {
		var ch;
	 	for (i=0; i < strText.length; i++) {
  			ch = strText.substring(i , i+1);
	  		if(ch < "0" || ch > "9") return true;
	 	}
		return false;
	}
	function GetByteLen(s) {
            var temp;
	    var mycount;
	    mycount = 0;
	    len = s.length;
	    
	    for(k=0;k<len;k++){
	       temp = s.charAt(k);
	       if (escape(temp).length > 4)
	          mycount += 2;
	       else
              mycount++;
            }
            return mycount;
        }
	function noSpChar(str)
	{
		str=str.toUpperCase();
		checking=1
		for (i=0;i<str.length;i++)
		{
			if((str.charCodeAt(i)<65 && (str.charCodeAt(i)!=64) && (str.charCodeAt(i)!=46) && !(str.charCodeAt(i)>=48 && str.charCodeAt(i)<=57)) || str.charCodeAt(i)>90 || (str.charAt(0) >= "0" && str.charAt(0) <= "9" ))
			{
				checking=0
			}
		}
		return (checking);
	}
