//<SCRIPT LANGUAGE="JAVASCRIPT">
	function RemBlancos(s) {
		l = s.length
		i = 0;
		f = l - 1;
		while (s.charAt(i) == " " && i < l)
			i++;
		while (s.charAt(f) == " " && i < f)
			f--;
		return s.substring(i, f + 1);
	}
	
	// Valida que dia, mes y años
	function EsFechaValidaDMA(pintDia, pintMes, pintAno) {
		var intMaxDia = 0;
		switch (pintMes) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
							intMaxDia = 31;
							break;
			case 2:
							if ( (pintAno % 4 == 0) && (pintAno % 100 == 0) && (pintAno % 400 == 0) )
								intMaxDia = 29;
							else
								intMaxDia = 28;
			default:
							intMaxDia = 30;
		}
		if ( (pintDia > 0) && (pintDia <= intMaxDia) && (pintMes > 0) && (pintMes <= 12) && (pintAno > 0))
			return true;
		else
			return false;
	}

	// Convierte una fecha en formato d/m/a de string a fecha
	function StrAFecha(pstrFecha) {
		pstrFecha = RemBlancos(pstrFecha);
		if (pstrFecha == "")
			return null;
			
		var strFormato = /^(\d{1,2})(\/)(\d{1,2})\2(\d{2,4})$/;
		var aryStr = pstrFecha.match(strFormato);
		
		if (aryStr == null)
			return null;
	
		var intDia = 0, intMes = 0, intAno = 0
	
		intDia = parseInt(aryStr[1], 10);
		intMes = parseInt(aryStr[3], 10);
		intAno = parseInt(aryStr[4]);
	
		if (intAno < 100)
			if (intAno < 50)
				intAno += 1900;
			else
				intAno += 2000;
	
		if (EsFechaValidaDMA(intDia, intMes, intAno))
			return new Date(intAno, intMes, intDia);
		else
			return null;
	}
	
	
	
	
	//Esta función valida que una Fecha sea valida
  //devuelve 1 si el la fecha no cumple con el formato dd/mm/yyyy
  //2 si la Fecha no es valida y 0 si la FEcha es correcta
  function	EsFechaValida(pstrFecha) {
		var aryStr;
		var Formato = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;
		var intDia, intMes, intAno, intMaxDia;
		
		aryStr = pstrFecha.match(Formato);
		
		if (aryStr == null) {
			return 1; // Formato inválido
		}
		
		intDia = parseInt(aryStr[1], 10);
		intMes = parseInt(aryStr[3], 10);	
		intAno = parseInt(aryStr[4], 10);
		
		switch (intMes) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				intMaxDia = 31;
				break;
			case 2:
				if ( (intAno % 4 == 0) && (intAno % 100 == 0) && (intAno % 400 == 0) )
					intMaxDia = 29;
				else
					intMaxDia = 28;
			default:
				  intMaxDia = 30;
		}
		
		if ( (intDia > 0) && (intDia <= intMaxDia) && (intMes > 0) && (intMes <= 12) && (intAno > 0))
			return 0; // Ok
		else
			return 2; // Fecha inválida
	}
  
  //Esta función valida que una Fecha sea menor que otra
  //devuelve 0 si la Fecha mayor es eFecTivamente mayo`r que
  //la fecha inicial y 1 en caso conTrario	  
  function fecha_mayor(pfechamenor, pfechamayor) {
		var aryStr, aryStr_2;
		var Formato = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/; 		
		var intDia, intMes, intAno;
		var intDia_2, intMes_2, intAno_2;		
		aryStr = pfechamenor.match(Formato);
		aryStr_2 = pfechamayor.match(Formato);
		intDia = parseInt(aryStr[1], 10);
		intMes = parseInt(aryStr[3], 10);
		intAno = parseInt(aryStr[4], 10);
		intDia_2 = parseInt(aryStr_2[1], 10);
		intMes_2 = parseInt(aryStr_2[3], 10);
		intAno_2 = parseInt(aryStr_2[4], 10);
		if(intAno_2 > intAno) {
			return 1;
		}
		else {
			if(intAno_2 == intAno) {
				if (intMes_2 > intMes) {
					return 1; 
				}
				else {
					if (intMes_2 == intMes) {
						if (intDia_2 >= intDia) {
						 	return 1;
						}
						else {
							return 0;
						}
					}
					else { 
						if (intMes_2 < intMes) {
							return 0;
						}
					}	
				}
			}
			else {
				if(intAno_2 < intAno) {
					return 0; 
				}
			}	  
		}	 
	}

//EsTa Función veriFica si un número es enTEro  numero.indexOf(".")
/*function	EnteroValido(valor)  {
	numero = 0;
	numero = parseInt(valor, 10);
	alert(numero.toString().length)
	if (isNaN(numero))
		return false;
	else 
		return true;
}*/
 
function	EnteroValido(valor)  {
	ok = false;
	numero = 0;
	i = 0;
	numero = parseInt(valor, 10);
	for (i=0; i<valor.toString().length; i++){
		digito =	valor.substring(i,i+1);
		if (isNaN(digito)){ //digito !='.' 
			ok = false;
			i = valor.toString().length;			
		}else{ 
			ok = true;
		}
	}
	return ok;
}
function	MayorQue(valor,minimo)  {
	numero = 0;
	numero = parseInt(valor, 10);
	minval = 0;
	minval = parseInt(minimo, 10);
	if (!isNaN(minval)) {
		if (!isNaN(numero)) {
			if (numero > minval) {
				return true;
			}
			else {
				return false;
			}
		}
		else {
			alert('El valor ingresado no es numérico');
			return false;
		}
	}
	else {
		alert('El minimo especificado no es un número');
		return false;
	}
}

//Esta función valida si un numero es real
function	RealValido(valor) {
	pos = 0;
	numero = 0;
	contador = 0;
	aux = "";
	cadena = valor;
	pos = cadena.indexOf(".");
	
	while(pos != -1) {
		contador++;
		aux = cadena.substring(pos + 1);
		cadena = aux;
		pos = cadena.indexOf(".");
	}
	
	if (contador == 1) {
		numero = parseFloat(valor);
		if (isNaN(numero))
			return false;
		else 
			return true;
	}	
	else {
		return false;
	}
	
}

function	real2Valido(valor) {
	pos = 0;
	
	cadena = valor;
	pos = cadena.indexOf(".");
	
	if(pos != -1 && cadena.length - pos > 3) {
		return true;
	}
	else return false;
		
}


//Esta función valida si un campo esta vacío
function esVacio(s){  
	return ((s == null) || (s.length == 0))
}

//Esta función valida si un caracter es dígito
function esDigito (c) {
	return ((c >= "0") && (c <= "9"))
}

//Esta función redondea un numero decimal a las posiciones deseadas
function roundit(Num, Posiciones) {
   if (Posiciones > 0) {
      if ((Num.toString().length - Num.toString().lastIndexOf('.')) > (Posiciones + 1)) {
         var Rounder = Math.pow(10, Posiciones);
         return Math.round(Num * Rounder) / Rounder;
      }
      else return Num;
   }
   else return Math.round(Num);
}


				// Principio verifica el email
				function emailCheck (emailStr) {
	
					// Verificar si el email tiene el formato user@dominio.
					var emailPat=/^(.+)@(.+)$/;
	 
					// Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] 
					var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	 
					// Verifica los caracteres que son vÃ¡lidos en una direcciÃ³n de email 
					var validChars="\[^\\s" + specialChars + "\]"; 
	 
					var quotedUser="(\"[^\"]*\")"; 
	 
					// Verifica si la direcciÃ³n de email estÃ¡ï¿½representada con una direcciÃ³n IP VÃ¡ida  
	 
					var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	 
					// Verificar caracteres invÃ¡idos 
	 
					var atom=validChars + '+';
					var word="(" + atom + "|" + quotedUser + ")";
					var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	
					//domain, as opposed to ipDomainPat, shown above. 
					var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	 
					var matchArray=emailStr.match(emailPat)
					if (matchArray==null) {
	 					alert("Dirección de correo incorrecta (revise @ y .'s)");
						return false
					}
					var user=matchArray[1];
					var domain=matchArray[2];

					// Si el user "user" es valido 
					if (user.match(userPat)==null) {
						// Si no
						alert("El nombre de usuario no es válido. \n Debe ingresar unicamente una dirección de correo.");
						return false;
					}
	 
					// Si la direcciÃ³n IP es vÃ¡lida 
					var IPArray=domain.match(ipDomainPat)
	
					if (IPArray!=null) {
						for (var i=1;i<=4;i++) {
							if (IPArray[i]>255) {
								alert("IP de destino inválida");
								return false;
							}
						}
						return true;
					}
	
					var domainArray=domain.match(domainPat);
					if (domainArray==null) {
						alert("El dominio parece no ser válido.");
						return false;
					}

	 
					var atomPat=new RegExp(atom,"g");
					var domArr=domain.match(atomPat);
					var len=domArr.length;
					if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {  
						alert("La dirección debe tener 3 letras si es .''com'' o 2 si es de algún pais.");
						return false;
					}
	 
					if (len<2) {
						var errStr="La dirección es errónea";
						alert(errStr);
						return false;
					}
	 
					// La dirección de email ingresada es inválida
					return true;
				}
			// End -->

function isNumber(inputStr){
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i)
		if (oneChar < "0" || oneChar > "9") {
			alert("Debe ingresar solo valores númericos")
			return false
		}
	}
	return true
}

function checkNumeric(fld) {
	var inputStr = fld.value
	var fldName = fld.name
	var formName = fld.form.name
	if (isNumber(inputStr)) 
	{
	
	}else{

		setTimeout("doSelection(document." + formName + ". " + fldName + ")", 0)
	}
}

function isEmpty(s)
	{   return ((s == null) || (s.length == 0))
	}
	
	function isDigit (c)
	{   return ((c >= "0") && (c <= "9"))
	}  
	
	function isInteger (s)
	{   var i;
	
	    if (isEmpty(s)) 
	       if (isInteger.arguments.length == 1) return false;
	       else return (isInteger.arguments[1] == true);
	    
	    for (i = 0; i < s.length; i++)
	    {   
	        var c = s.charAt(i);
	        if( i != 0 ) {
	            if (!isDigit(c)) return false;
	        } else { 
	            if (!isDigit(c) && (c != "-") || (c == "+")) return false;
	        }
	    }
	    return true;
		  
	}
			
//</SCRIPT>
