

hw.ajaxValidatorResult = new Array(); // vysledky ajax validace
hw.validators = new Array(); // validatory, aby se s nimi dalo dal pracovat v pripade potreby
hw.validatorRules = new Array();
hw.validatorMessages = new Array();

$.validator.methods.k2AjaxValidator = function (value, element, param)
{
  id = $(element).attr('id');
  return hw.ajaxValidatorResult[id];
}

hw.ajaxValidateResult = function (result)
{
  hw.ajaxValidatorResult[result.element] = result.success;
}

hw.ajaxValidate = function (event)
{
  cb = hw.ajaxValidateResult;

  if (event.data.submit)
  {
    $(element).parents('form').ajaxSubmit({
      url: event.data.url,
      type: 'post',
      dataType: 'json',
      success: cb
      });
  }
  else
  {
    val = $(this).val();
    $.post(event.data.url, {value: val}, cb);
  }

  return true;
}


hw.getDateFromParam = function (param)
{
  if (typeof param == "object")
  {
    d = Date.today();
    if (param.value) d = Date.parse(param.value);
    if (param.select) d = Date.parse($("" + param.select).val());
    if (param.add) d.add(param.add);
  }
  else
  {
    d = Date.parse(param);
  }
  return d;
};

$.validator.methods.dateMin = function (value, element, param)
{
	if (value == "") return true;
	c = Date.parse(value).compareTo(hw.getDateFromParam(param));
	return c >= 0;
};

$.validator.methods.dateMax = function (value, element, param)
{
  if (value == "") return true;
	c = Date.parse(value).compareTo(hw.getDateFromParam(param));
  return c <= 0;
};

$.validator.methods.dateRange = function (value, element, param)
{
  if (value == "") return true;
	from = hw.getDateFromParam(param[0]);
	to = hw.getDateFromParam(param[1]);
  return Date.parse(value).between(from, to);
};

