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 esEnteroPos(valor){
  var checkOK = "0123456789";
  var checkStr = valor;
  var allValid = true;
  var allNum = "";
  if (checkStr != 0){
	  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;
  }
  else
  	return false;
}

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)
}

function trim(value) {
   var temp = value;
   var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
   if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
   var obj = / +/g;
   temp = temp.replace(obj, " ");
   if (temp == " ") { temp = ""; }
   return temp;
}

function esAlfaNumerico(value){
	var obj = /^([a-zA-Z0-9_ ]+$)/;
	if (obj.test(value)){
	return (true)
	}
	return (false)
}

function extension(str_filename){
	var i = str_filename.length;
	var slicer = String(slicer)
	var ext = String('')
	do{ 
		slicer = str_filename.slice(i-1,i);
		ext = slicer+ext
		i--
	}
	while(slicer != '.' && i > 1)
		ext = ext.toLowerCase();
	return(ext);
}
