// JavaScript Document - Data check v1.0

function isEmpty(data) {
  var regexp = /\S+/;
  return !regexp.test(data.value);
}

function isChecked(data) {
  if (isUndefined(data.length)) checked = data.checked;
  else {
    checked = false;
    for (r = 0; r < data.length && !checked; r++) checked = data[r].checked;
  }
  return checked;
}

function isSelected(data, min) {
  if (isDefined(min)) {
    if (data.multiple) min--;
    else if (data.size > 0) min = 0;
  } else min = 0;

  if (data.size == 0 && !data.multiple) selItem = data.selectedIndex;
  else {
    selItem = 0;
    for (var c = 0; c < data.length; c++)
	if (data.options[c].selected) selItem++;
  }
  return (selItem > min);
}

function isSelectedValue(data, value) {
  return (data.options[data.selectedIndex].value != value);
}

function isEmail(data) {
  //jonathan modifico la expresion pq para esta cuenta daba error : xxx.xxxx@x-xxxx.xx
	//var regexp = /^[a-zA-Z0-9][a-zA-Z0-9\_\.\-]*\@([a-zA-Z0-9]{2}[a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/;
	var regexp = /^[a-zA-Z0-9][a-zA-Z0-9\_\.\-]*\@([a-zA-Z0-9]{1,}[a-zA-Z0-9\-\_]*\.)+[a-zA-Z]{2,}$/;
  return regexp.test(data.value);
}

function isInteger(data, min, max) {
  var regexp = /^-?[0-9]+$/;
  return regexp.test(data.value) &&
         (isUndefined(min) || (isDefined(min) && data.value >= min)) &&
         (isUndefined(max) || (isDefined(max) && data.value <= max));
}

function isDecimal(data, min, max) {
  var regexp = /^-?[0-9]+(\.[0-9]+)?$/;
  return regexp.test(data.value) &&
         (isUndefined(min) || (isDefined(min) && data.value >= min)) &&
         (isUndefined(max) || (isDefined(max) && data.value <= max));
}

var isDate_format;
function isDate(data, min, max) {
  if (isUndefined(isDate_format)) isDate_format = "ddmmaaaa";
  var regexp = /^([0-2][0-9]|3[0-1])[\-\/](0[0-9]|1[0-2])[\-\/][0-9]{4}$/;
  if (!regexp.test(data.value)) return false;
  return (dateOK = isValidDate(data.value.substr(0, 2), data.value.substr(3, 2), data.value.substr(6, 4))) &&
         (isUndefined(min) || (isDefined(min) && dateOK >= min)) &&
         (isUndefined(max) || (isDefined(max) && dateOK <= max));
}

function isIP(data) {
  var regexp = /^(([0-1]?[0-9]?[0-9]|2([0-4][0-9]|5[0-6]))\.){3}([0-1]?[0-9]?[0-9]|2([0-4][0-9]|5[0-6]))$/;
  return regexp.test(data.value);
}

function isPath(data) {
  var regexp = /^([a-zA-Z]\:[\\\/])?([a-zA-Z0-9\.\_\-\\\/])*$/;
  return regexp.test(data.value);
}

function isDefined(obj) {
  return (obj != null);
}

function isUndefined(obj) {
  return !isDefined(obj);
}

function isValidDate(d, m, a) {
  var dateToCheck = new Date();
  dateToCheck.setFullYear(a, --m, d);
  return (d == dateToCheck.getDate() && m == dateToCheck.getMonth()) ? dateToCheck : false;
}

function isURL(value)
{
	var regexp = /^https?:\/\/([-\w\.]+)+(:\d+)?(\/([-\w/_\.]*(\?\S+)?)?)?$/;
	return regexp.test(value);
}

