function async_style(element, style)
{
	setTimeout(function() {
		$(element).attr("class", style);
	}, 1);
}

function add_number_validation(val_class)
{
  $.validator.addMethod(val_class, function(value, element) {
      var valid = value > 0;

      if (!valid)
        async_style(element, val_class + " val_error");
      else
  		async_style(element, val_class);
     
	  return valid;
 	}, ""); 
}

function add_number_validation_min(val_class, minval)
{
  $.validator.addMethod(val_class, function(value, element) {
      var valid = value > minval;

      if (!valid)
        async_style(element, val_class + " val_error");
      else
  		async_style(element, val_class);
     
	  return valid;
 	}, ""); 
}

function add_number_or_empty_validation(val_class)
{
  $.validator.addMethod(val_class, function(value, element) {
      var valid = (value=="") || (value > 0);

      if (!valid)
        async_style(element, val_class + " val_error");
      else
  		async_style(element, val_class);
     
 	  return valid;
 	}, ""); 
}

function add_nonempty_validation(val_class)
{
  $.validator.addMethod(val_class, function(value, element) {
      var valid = value != "";

      if (!valid)
        async_style(element, val_class + " val_error");
      else
  		async_style(element, val_class);
     
 	  return valid;
 	}, ""); 
}

function add_nonnull_validation(val_class)
{
  $.validator.addMethod(val_class, function(value, element) {
      var valid = value != "0";

      if (!valid)
        async_style(element, val_class + " val_error");
      else
  		async_style(element, val_class);
     
 	  return valid;
 	}, ""); 
}

function add_phone_number_validation(val_class)
{
	$.validator.addMethod(val_class, function(value, element) {
      var reg = /^[+\d]+$/;    
      var valid = reg.test(value);

      if (!valid)
        async_style(element, val_class + " val_error");
      else
  		async_style(element, val_class);

 	  return valid;
 	}, "");
}

function add_latinnumber_validation(val_class)
{
	$.validator.addMethod(val_class, function(value, element) {
      var reg = /^[a-zA-Z\d]+$/;    
      var valid = reg.test(value);

      if (!valid)
        async_style(element, val_class + " val_error");
      else
  		async_style(element, val_class);

 	  return valid;
 	}, "");
}

function add_email_validation(val_class)
{
  $.validator.addMethod(val_class, function(value, element) {
      var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;    
      var valid = reg.test(value);

      if (!valid)
        async_style(element, val_class + " val_error");
      else
  		async_style(element, val_class);
     
 	  return valid;
 	}, "");
}
