//-------------------------------------------------------------------------------------------------------//
//-------------------------------------- Æû ÇÊµå Ã¼Å© ÇÔ¼ö ¸ðÀ½ -----------------------------------------//
// »ç¿ë¹ý : ÇÊ¼ö¿É¼Ç - required Ãß°¡
//          ±æÀÌÃ¼Å© - lengthchk="±æÀÌ"
//          Å¸ÀÔÃ¼Å© - option="Å¸ÀÔ" (regNum,regPhone,regMail,regDomain,regAlpha,regHost,regHangul,regHangulEng,regHangulOnly,regId,regDate)
//          ¿¡·¯¸Þ¼¼Áö - hname="¿¡·¯¸Þ¼¼Áö"
function chkForm(f)
{
	var i,currEl;

    for(i = 0; i < f.elements.length; i++){
              currEl = f.elements[i];
              //ÇÊ¼ö Ç×¸ñÀ» Ã¼Å©ÇÑ´Ù.
              if (currEl.getAttribute("required") != null)
              {
                     if(currEl.type.toUpperCase() == "TEXT" || currEl.tagName.toUpperCase() == "SELECT" || 
						currEl.tagName.toUpperCase() == "TEXTAREA" || currEl.type.toUpperCase() == "PASSWORD" || 
						currEl.type.toUpperCase() == "FILE" )
                     {
                            if(!chkText(currEl,currEl.hname)) return false;

                     } else if(currEl.type.toUpperCase() == "CHECKBOX"){
                            if(!chkCheckbox(f, currEl,currEl.hname)) return false;

                     } else if(currEl.type.toUpperCase() == "RADIO"){
                            if(!chkRadio(f, currEl,currEl.hname)) return false;

                     }
              }
              // ÀÔ·Â ÆäÅÏÀ» Ã¼Å©ÇÑ´Ù.
              if(currEl.getAttribute("option")){
                     if(!chkPatten(currEl,currEl.option,currEl.hname)) return false;
              }
              // ±æÀÌÁ¦ÇÑÀ» Ã¼Å©ÇÑ´Ù.
              if(currEl.getAttribute("lengthchk") != null && currEl.value.length > 0){
                     if(!chkLength(currEl,currEl.lengthchk,currEl.hname)) return false;
              }

			  //ºñ¹Ð¹øÈ£ ÀÏÄ¡È®ÀÎ
			  if (currEl.getAttribute("pwchk") != null){
				  var j;
				  for(j=0; j < f.elements.length; j++){
					  if(f.elements[j].getAttribute("pwchk_after") != null){
						  if(!check_pw(currEl, f.elements[j], currEl.hname, f.elements[j].hname)) return false;
						  break;
					  }
				  }
			  }

			  //ÁÖ¹Î¹øÈ£ ÀÏÄ¡È®ÀÎ
			  /*
			  if (currEl.getAttribute("scchk") != null){
				  var j;
				  for(j=0; j < f.elements.length; j++){
					  if(f.elements[j].getAttribute("scchk_after") != null){
						  if(!check_socialid(currEl.value, f.elements[j].value)) 
						  { 
							currEl.value = ''; 
							f.elements[j].value =''; 
							alert('Àß¸øµÈ ÁÖ¹Î¹øÈ£ ÀÔ´Ï´Ù.'); 
							currEl.focus(); 
							return false;
						  }
						  break;
					  }
				  }
			  }	*/
    }
    return true;
}

//ºñ¹Ð¹øÈ£ ÀÏÄ¡ È®ÀÎ
function check_pw(pw1, pw2, name1, name2){
	if (!pw1.value || pw1.value == " " || pw1.value == "  " )
	{
		alert("["+name1+"]¸¦ ÀÔ·ÂÇÏ¿© ÁÖ¼¼¿ä");
		pw1.focus();
        return false;
	}
	if (!pw2.value || pw2.value == " " || pw2.value == "  " )
	{
		alert("["+name2+"]¸¦ ÀÔ·ÂÇÏ¿© ÁÖ¼¼¿ä");
		pw2.focus();
        return false;
	}

	if (pw1.value != pw2.value)
	{
		alert("["+name2+"]°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.\n ´Ù½Ã ÀÔ·ÂÇØ ÁÖ¼¼¿ä.");
		pw2.focus();
        return false;
	}
	return true;
}

// ÁÖ¹Îµî·Ï¹øÈ£Ã¤Å©
function check_socialid(name1, name2) 
{
	var weight = 0;
	var check;

	weight += (name1.charAt(0) - '0') * 2;
	weight += (name1.charAt(1) - '0') * 3;
	weight += (name1.charAt(2) - '0') * 4;
	weight += (name1.charAt(3) - '0') * 5;
	weight += (name1.charAt(4) - '0') * 6;
	weight += (name1.charAt(5) - '0') * 7;
	weight += (name2.charAt(0) - '0') * 8;
	weight += (name2.charAt(1) - '0') * 9;
	weight += (name2.charAt(2) - '0') * 2;
	weight += (name2.charAt(3) - '0') * 3;
	weight += (name2.charAt(4) - '0') * 4;
	weight += (name2.charAt(5) - '0') * 5;
	
	check = (11 - weight % 11) % 10;

	return ((name2.charAt(6) - '0') == check ? 1 : 0);
}


// Çü½Ä Ã¼Å©
function chkPatten(field,patten,name)
{
       var regNum =/^[0-9]+$/;
	   var regNo =/^[nN1-9][0-9]*$/;
       var regPhone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/;
       var regPostno =/^[0-9]{3}-[0-9]{3}$/;
       var regMail =/^[._a-zA-Z0-9-]+@[._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_-]{2,12}$/;
       var regPass = /^[a-zA-Z0-9_-]{5,12}$/;
	   var regMailId = /^[.a-zA-Z0-9_-]*$/;
       var regDate =/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
	   var regYear = /^[1][9][0-9]{2}$/;
	   var regMonth = /^[1]{0,1}[0-9]$/;
	   var regDay = /^[0-3]{0,1}[0-9]$/;

       var patten_name = patten;
       patten = eval(patten);
       if(!patten.test(field.value)){
              alert("[" + name + "] Ç×¸ñÀÇ Çü½ÄÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù."+getPattenEx(patten_name));
              field.focus();
              return false;
       }
       return true;
}

// µ¥ÀÌÅÍ ÀÔ·Â Çü½ÄÀÇ ¿¹
function getPattenEx(patten){
    var rv = "";

    switch(patten){
	case "regDate":
	    rv = "YYYY-mm-dd";
	    break;
        case "regPhone":
            rv = "000-0000-0000";
            break;
        case "regMail":
            rv = "user_id@domain.com";
            break;
        case "regDomain":
            rv = "domain.com";
            break;
    }

    if(rv) rv = "\n\n´ÙÀ½ Çü½ÄÀ¸·Î ÀÔ·ÂÇÏ¿© ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù. [ "+rv+" ]";

    return rv;
}

// ¹®ÀÚ¿­ ±æÀÌ °Ë»ç
function getLength(str){
       return (str.length + (escape(str) + "/%u").match(/%u/g).length-1);
}

function chkLength(field,length,name)
{

	   var ls_str     = field.value; // ÀÌº¥Æ®°¡ ÀÏ¾î³­ ÄÁÆ®·ÑÀÇ value °ª
	   var li_str_len = ls_str.length;  // ÀüÃ¼±æÀÌ

	   // º¯¼öÃÊ±âÈ­
	   var li_max      = length; // Á¦ÇÑÇÒ ±ÛÀÚ¼ö Å©±â
	   var i           = 0;  // for¹®¿¡ »ç¿ë
	   var li_byte     = 0;  // ÇÑ±ÛÀÏ°æ¿ì´Â 2 ±×¹Ü¿¡´Â 1À» ´õÇÔ
	   var li_len      = 0;  // substringÇÏ±â À§ÇØ¼­ »ç¿ë
	   var ls_one_char = ""; // ÇÑ±ÛÀÚ¾¿ °Ë»çÇÑ´Ù
	   var ls_str2     = ""; // ±ÛÀÚ¼ö¸¦ ÃÊ°úÇÏ¸é Á¦ÇÑÇÒ¼ö ±ÛÀÚÀü±îÁö¸¸ º¸¿©ÁØ´Ù.

	   for(i=0; i< li_str_len; i++)
	   {
		  // ÇÑ±ÛÀÚÃßÃâ
		  ls_one_char = ls_str.charAt(i);

		  // ÇÑ±ÛÀÌ¸é 2¸¦ ´õÇÑ´Ù.
		  if (escape(ls_one_char).length > 4)
		  {
			 li_byte += 2;
		  }
		  // ±×¹ÜÀÇ °æ¿ì´Â 1À» ´õÇÑ´Ù.
		  else
		  {
			 li_byte++;
		  }

		  // ÀüÃ¼ Å©±â°¡ li_max¸¦ ³ÑÁö¾ÊÀ¸¸é
		  if(li_byte <= li_max)
		  {
			 li_len = i + 1;
		  }
	   }



       if(getLength(field.value) > length){
              alert(name + "\n\n¿µ¹®,¼ýÀÚ "+length+"ÀÚ , ÇÑ±Û "+(length/2)+"ÀÚ ÀÌÇÏ ÀÔ·Â Á¦ÇÑ ÇÕ´Ï´Ù.\n\nÃÊ°úµÈ ³»¿ëÀº ÀÚµ¿À¸·Î »èÁ¦ µË´Ï´Ù.");
			  field.value = field.value.substr(0, li_len);
              field.focus();
              return false;
       }
       return true;
}

// ÅØ½ºÆ®¹Ú½º Ã¼Å©
function chkText(field, name)
{		
	   field.value.replace(/\s+/g,'');
	   if (!field.value || field.value == " " || field.value == "  ") {
       //if(field.value.length < 1){
              alert("["+ name + "]À»(¸¦) ÀÔ·ÂÇÏ¿© ÁÖ¼¼¿ä");
              field.focus();
              return false;
       }
       return true;
}

// Ã¼Å©¹Ú½º Ã¼Å©
function chkCheckbox(form, field, name)
{
       fieldname = eval(form.name+'.'+field.name);
       if (!fieldname.checked){
              alert("["+ name + "]À»(¸¦) ¼±ÅÃÇÏ¿© ÁÖ¼¼¿ä");
              field.focus();
              return false;
       }
       return true;
}

// ¿É¼Ç¹öÆ° Ã¼Å©
function chkRadio(f, field, name)
{
       fieldname = eval(f.name+'.'+field.name);//eval(f.name+'.'+field.name);
       for (i=0;i<fieldname.length;i++) {
              if (fieldname[i].checked)
                     return true; 
       }
       alert("["+ name + "]À»(¸¦) ¼±ÅÃÇÏ¿© ÁÖ¼¼¿ä");
       field.focus(); 
       return false; 
} 

/* È­¸é °¡¿îµ¥¿¡ ÆË¾÷
popc('¾Ð¾÷ÁÖ¼Ò','ÆË¾÷ÀÌ¸§', °¡·Î, ¼¼·Î, '½ºÅ©·Ñ¿©ºÎ'); */
function popc(Address, name, w, h, scroll){
	var scr = (scroll=="") ? "yes" : "no";
	var popwindow = null;
	var LeftPosition = (screen.width) ? (screen.width-w)/2:0;
	var TopPosition = (screen.height) ? (screen.height-h)/2:0;   
	var settings = 'height=' + h + ',width=' + w + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=' + scr + ',resizable=no'
	popwindow = window.open(Address, name, settings);
	popwindow.focus();
}

/* ÁÂÇ¥ ¹Þ´Â ÆË¾÷
popc('¾Ð¾÷ÁÖ¼Ò','ÆË¾÷ÀÌ¸§', °¡·Î, ¼¼·Î, '½ºÅ©·Ñ¿©ºÎ'); */
function pop(Address, name, w, h, l, t, scroll){
	var scr = (scroll=="") ? "yes" : "no";
	var left = (l=="") ? 0 : l;
	var top = (t=="") ? 0 : t;
	var popwindow = null;
	var settings = 'height=' + h + ',width=' + w + ',top=' + top + ',left=' + left + ',scrollbars=' + scr + ',resizable=no'
	alert(settings)
	popwindow = window.open(Address, name, settings);
	popwindow.focus();
}
