
var formValidator = {

   check : function(form) {

      var elements = form.elements;
	  var regClassNone = /none/;
	  var regClassValidate = /validate-/;

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

	   var obj = elements[i];

       if(!regClassNone.test(obj.className)&&regClassValidate.test(obj.className)) {

	    var arrClassName = obj.className.split(' ');

	    for(var j=0, count2=arrClassName.length; j<count2; j++) {

	     var className = arrClassName[j].replace(' ').replace('-', '');

	 	 if(formValidator[className]) {

		  var message = formValidator[className](obj);

		  if(message) {

		   formValidator.alertMsg(obj, message);
		   return false;

		  }

 		 }

	    }

	   }

   	  }

	  return true;

   },
		
   validaterequired : function(obj) {

      return !obj.value ? '%s (은)는 반드시 입력하셔야 합니다.' : false;

   },

   validatenumber : function(obj) {

      return (isNaN(obj.value)||/^\s+$/.test(obj.value)) ? '%s (은)는 숫자로 입력하셔야 합니다.' : false;

   },

   validatedigits : function(obj) {

      return (isNaN(obj.value)||/[^\d]/.test(obj.value)) ? '%s (은)는 숫자만 입력하셔야 합니다.' : false;			

   },

   validatealpha : function(obj) {

      return /^[a-zA-Z]+$/.test(obj.value) ? '%s (은)는 알파벳만 입력하셔야 합니다.' : false;

   },

   validatealphanum : function(obj) {

      return /\W/.test(obj.value) ? '%s (은)는 알파벳과 숫자만 입력하셔야 합니다.' : false;

   },

   validatedate : function(obj) {

      return isNaN(new Date(obj.value)) ? '%s (은)는 올바른 날짜를 입력하셔야 합니다.' : false;

   },

   validatemail : function(obj) {

      return !/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(obj.value) ? '%s (은)는 올바른 메일 주소를 입력하셔야 합니다.' : false;

   },

   validateurl : function(obj) {

      return !/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(obj.value) ? '%s (은)는 올바른 URL을 입력하셔야 합니다.' : false;

   },

   validateselected : function(obj) {
    
      return !obj.value ? '%s (은)는 반드시 선택하셔야 합니다.' : false;

   },

   validatechecked : function(obj) {
    
      return obj.checked!=true ? '%s (은)는 반드시 선택하셔야 합니다.' : false;

   },

   validateonemorechecked : function(obj) {

      var _obj = document.getElementsByName(obj.name);
	  var checked = false;
	  for(var i=0, count=_obj.length; i<count; i++) {
       if(_obj[i].checked==true) { checked = true; break; }
	  }

      return checked!=true ? '%s (은)는 반드시 선택하셔야 합니다.' : false;

   },

   getTitle : function(obj) {

      return obj.title ? obj.title : obj.name;

   },

   alertMsg : function(obj, message) {

	  alert(_i(message, formValidator.getTitle(obj)));
      $('#submit').css('visibility', ''); 
	  try { obj.focus(); } catch(e) { }

   }

}
