function Valida_Fecha(obj)
{
  return(esFecha(obj.value))
}

function Valida_Entero(obj)
{
 if (obj.value=="")
	return true;
 return(esEntero(obj.value))
}

function Valida_Decimal(obj)
 {
  if (obj.value=="")
	return true
  return(esDecimal(obj.value))
}

function Valida_Numero(obj)
{
return ((Valida_Entero(obj))||(Valida_Decimal(obj)))
}

function Valida_Texto(obj)
{
  return(esTexto(obj.value))
}

function Valida_Rango(obj, ini, fin)
{
  return(enRango(obj.value,ini,fin))
}

function Valida_enTamanio(obj,tam)
{
  return(enTamanio(obj.value,tam))
}

function Valida_enMascara(obj,mascara)
{
  return(enMascara(obj.value,mascara.value))
}

function Valida_Cuil(obj)
{
 return(esCuit(obj.value))
}

function Valida_enEntero(obj,tam)
{
	if (!Valida_Entero(obj))
		return false;
	else
		{
			if (obj.value.length<=tam)
				return true;
			else
				return false;
		}
}

function Valida_Email(obj)
{
return(esEmail(obj.value))
}

/****************************************************************
*																*
*                Validación de tipos							*
*																*
****************************************************************/

function esNumero(valor)
{
	if (esEntero(valor) || esDecimal(valor))
		return true;
	return false;
}

function esTexto(valor)
{
	return true;
}

function esEntero(valor)
{
  var checkOK = "0123456789-";
  var checkStr = valor;
  var allValid = true;
  var allNum = "";
  for (k = 0;  k < checkStr.length;  k++)
  {
    ch = checkStr.charAt(k);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  if (!allValid)
  {
    return false;
  }
  return true;
}

function esDecimal(valor)
{
  var checkOK = "0123456789-,.";
  var checkStr = valor;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (k = 0;  k < checkStr.length;  k++)
  {
    ch = checkStr.charAt(k);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if ((ch == ",") || (ch == "."))
    {
      allNum += ".";
      decPoints++;
    }
    else 
		allNum += ch;
  }
  if (!allValid)
    return false;
  if (decPoints > 1 || decPoints == 0)
    return false;
  return true;
}

function esFecha(fecha)
{
	var maxYear = 2100; // Año maximo valido;
	var err = 0;	
	var dateMask = /^(\d{1,2})\/(\d{1,2})\/(\d\d\d\d)$/;
	if (fecha.search(dateMask)!=-1) {
		aFecha = fecha.split("/");
		// errores de tipeo
		if (aFecha[1]<1 || aFecha[1]>12) err = 1;
		if (aFecha[0]<1 || aFecha[0]>31) err = 1;
		if (aFecha[2]<0 || aFecha[2]>=maxYear) err = 1;
		// meses terminados en 30
		if (aFecha[1]==4 || aFecha[1]==6 || aFecha[1]==9 || aFecha[1]==11){
			if (aFecha[0]==31) err=1
		}

		// febrero
		if (aFecha[1]==2){
			// feb
			var g=parseInt(aFecha[2]/4)
			if (isNaN(g)) {
				err=1
			}
			if (aFecha[0]>29) err=1;
			if (aFecha[0]==29 && ((aFecha[2]/4)!=parseInt(aFecha[2]/4))) err=1
		}
		
	} else { err=1 }
	if (err == 1) 
		return false;
    else 
		return true;
}

function esFechaTipo2(fecha)
{
	var maxYear = 2100; // Año maximo valido;
	var err = 0;	
	var dateMask = /^(\d\d\d\d)\-(\d{1,2})\-(\d{1,2})\ (\d{1,2})\:(\d{1,2})\:(\d{1,2})$/;
	if (fecha.search(dateMask)!=-1) {
		aFecha = fecha.split("-");
		// errores de tipeo
		if (aFecha[1]<1 || aFecha[1]>12) err = 1;
		if (aFecha[2]<1 || aFecha[2]>31) err = 1;
		if (aFecha[0]<0 || aFecha[0]>=maxYear) err = 1;
		// meses terminados en 30
		if (aFecha[1]==4 || aFecha[1]==6 || aFecha[1]==9 || aFecha[1]==11){
			if (aFecha[2]==31) err=1
		}

		// febrero
		if (aFecha[1]==2){
			// feb
			var g=parseInt(aFecha[0]/4)
			if (isNaN(g)) {
				err=1
			}
			if (aFecha[2]>29) err=1;
			if (aFecha[2]==29 && ((aFecha[0]/4)!=parseInt(aFecha[0]/4))) err=1
		}
		
	} else { err=1 }
	if (err == 1) 
		return false;
    else 
		return true;
}

function enRango(valor, ini, fin)
{
if (!esNumero(valor))
	return false;
valor = valor * 1;

if ((valor<ini)||(valor>fin))
	return false;
else
	return true;
}

function enTamanio(valor, tam)
{
  var aux = valor;
  if (aux.length > tam)
	return false
  return true
}

function enMascara(valor, mascara)
{
 var reg = new RegExp(mascara);
 if (valor.search(reg)==-1) 
	return false
return true	
}

function esCuit(valor)
{
 var TP = new Array (5,4,3,2,7,6,5,4,3,2,1);
 var TN = valor.replace(/-/g,"")
 var TR = new Array();
 var total = 0;

if (TN.length == 11){
	for(i=0;i<10;i++)
		TR[i] = TN.charAt(i) * TP[i];

	for(i=0;i<10;i++)
		total = total + TR[i];

	dig = 11 - (total % 11);
	if (dig == 11)
		dig = 0;
	
	if (dig==10 || dig!=TN.charAt(10))
		return false
	else
		return true
} else {
	return false
}
}


function esEmail(valor) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
	return (true)
	}
	return (false)
}

/*-------------------------------------------------------------------
| checkdate("dd/mm/yyyy") as boolean 
| Checkea si la fecha es valida
| 
| Retorna: true/false
|
| v.1.0      18/01/2001 			by R.D.B.
-------------------------------------------------------------------
function checkdate(fecha){
	var maxYear = 2100; // Año maximo valido;
	var err = 0;	
	var dateMask = /^(\d{1,2})\/(\d{1,2})\/(\d\d\d\d)$/; 
	
	if (fecha.search(dateMask)!=-1) {
		aFecha = fecha.split("/");
		// errores de tipeo
		if (aFecha[1]<1 || aFecha[1]>12) err = 1;
		if (aFecha[0]<1 || aFecha[0]>31) err = 1;
		if (aFecha[2]<0 || aFecha[2]>=maxYear) err = 1;
		// meses terminados en 30
		if (aFecha[1]==4 || aFecha[1]==6 || aFecha[1]==9 || aFecha[1]==11){
			if (aFecha[0]==31) err=1
		}

		// febrero
		if (aFecha[1]==2){
			// feb
			var g=parseInt(aFecha[2]/4)
			if (isNaN(g)) {
				err=1
			}
			if (aFecha[0]>29) err=1;
			if (aFecha[0]==29 && ((aFecha[2]/4)!=parseInt(aFecha[2]/4))) err=1
		}
		
	} else { err=1 }
	if (err == 1) {
		return false;
	} else {
		return true;
	}
}

/*-------------------------------------------------------------------
| checkhora(hora) as boolean  
| recibe hora en formato hh:mm y controla el valor de la hora y de los minutos
| 
|       16/04/2002 			Por El KuNi
-------------------------------------------------------------------
function checkhora(hora)
{
	var err = 0;	
	var HourMask = /^(\d{1,2}):(\d{1,2})$/;
	if (hora.search(HourMask)!=-1) 
		{
		auxhora = hora.split(":");
		// errores de tipeo
		if (auxhora[0]<1 || auxhora[0]>24) err = 1;
		if (auxhora[1]<0 || auxhora[1]>59) err = 1;
		}
	else
		{
		err = 1;
		}
	if (err == 1) 
		return false;
	 else 
		return true;
}

function valentero(obj)
{
 if (obj.value=="")
	return true
  var checkOK = "0123456789-";
  var checkStr = obj.value;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (k = 0;  k < checkStr.length;  k++)
  {
    ch = checkStr.charAt(k);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  if (!allValid)
  {
    alert("El campo solo permite el ingreso de digitos.");
    obj.focus();
    return (false);
  }
  return true
}

function valfloat(obj)
 {
  if (obj.value=="")
	return true
  var checkOK = "0123456789-,.";
  var checkStr = obj.value;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (k = 0;  k < checkStr.length;  k++)
  {
    ch = checkStr.charAt(k);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if ((ch == ",") || (ch == "."))
    {
      allNum += ".";
      decPoints++;
    }
    else 
		allNum += ch;
  }
  if (!allValid)
  {
    alert("El campo solo permite el ingreso de digitos.");
    obj.focus();
    return (false);
  }

  if (decPoints > 1)
  {
    alert("Nro invalido.");
    obj.focus();
    return (false);
  }
  return (true);
}*/


