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

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

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

k2.ajaxValidate = function (event)
{
  cb = k2.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;
}

jQuery.validator.addMethod("dateMin",
	function (value, element, param)
	{
		if (value == "" || !param) return true;

		return $(element).datepicker('isDateInRange');
	}, "Please enter valid date."
);

jQuery.validator.addMethod("dateMax",
	function (value, element, param)
	{
		if (value == "" || !param) return true;

		return $(element).datepicker('isDateInRange');
	}, "Please enter valid date."
);

jQuery.validator.addMethod("k2dateRange",
	function (value, element, param)
	{
		if (value == "" || !param) return true;

		return $(element).datepicker('isDateInRange');
	}, "Please enter valid date."
);

jQuery.validator.addMethod("k2date",
	function(value, element, param)
	{
		if (!param) return true; // needed for validatorCondition to work

		return this.optional(element) || $(element).datepicker('isValidDate');
	}, "Please enter a valid date."
);

jQuery.validator.addMethod("k2vs",
	function(value, element)
	{
		return this.optional(element) || /^[1-9]{1}[0-9]*$/.test(value);
	return ;
}, "Please enter a valid variable symbol.");
