function NumberValidator(source, args)
{
  if(args.Value == '')
  {
    args.IsValid = true;
    return;
  }
  args.Value = args.Value.replace(',', '.');
  args.IsValid = (isNaN(args.Value) == false);
}

function HourValidator(source, args)
{
  if(args.Value == '')
  {
    args.IsValid = true;
    return;
  }
  args.IsValid = (isNaN(args.Value) == false);
  args.IsValid = (args.Value >= 0 && args.Value <= 23);
}

function MinuteValidator(source, args)
{
  if(args.Value == '')
  {
    args.IsValid = true;
    return;
  }
  args.IsValid = (isNaN(args.Value) == false);
  args.IsValid = (args.Value >= 0 && args.Value <= 59);
}

function EmailValidator(source, args) 
{
  if(args.Value == '')
  {
    args.IsValid = true;
    return;
  }
	var regExp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	args.IsValid = regExp.test(args.Value);
}

function UrlValidator(source, args)
{
  if(args.Value == '')
  {
    args.IsValid = true;
    return;
  }
	var regExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
	args.IsValid = regExp.test(args.Value);
}