function validarEntero(pEnteroStr) {
	// Si esta nulo, tenemos un error
	if (pEnteroStr == null || pEnteroStr == "") {
		return false;
	}

	var regexp = /^[0-9]+$/gi;	
	return pEnteroStr.match(regexp); 	
}


function validarEmail(emailStr) {
	
	if (emailStr.length == 0) {
		return true;
	}
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray == null) {
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	if (user.match(userPat) == null) {
		return false;
	}
	var IPArray = domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i = 1; i <= 4; i++) {
			if (IPArray[i] > 255) {
				return false;
			}
		}
		return true;
	}
	var domainArray=domain.match(domainPat);
	if (domainArray == null) {
		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)) {
		return false;
	}
	if (len < 2) {
		return false;
	}
	return true;
}


// Valida fechas (formato dd/mm/yyyy)
function ValidacionFecha(pFechaStr){
	var dia = pFechaStr.substring(0,2);
	var mes = pFechaStr.substring(3,5);
	var ano = pFechaStr.substring(6,10);
	
	if (pFechaStr.length != 10){
		return 'Formato de fecha inv\xe1lido (formato correcto es dd/mm/aaaa)';
	}
	
	if (pFechaStr.charAt(2) != "/" || pFechaStr.charAt(5) != "/") {
		return 'Formato de fecha inv\xe1lido (formato correcto es dd/mm/aaaa)';
	}
	
	var iDia = Number(pFechaStr.substring(0,2));
	var iMes = Number(pFechaStr.substring(3,5));
	var iAnio = Number(pFechaStr.substring(6,10));
	
			
	if ((ano < 1) || (ano > 9999) || isNaN(iAnio)){
		return 'A\xf1o incorrecto (1 a 9999)';
	}
	
	if ((mes > 12) || (mes < 1) || isNaN(iMes)){
		return 'Mes incorrecto (1 a 12)';
	}
	
	if ((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 12) || isNaN(iDia)){
		if ((dia > 31) || (dia < 1)){
			return 'D\xeda incorrecto (1 a 31)';
		}
	} else if ((mes == 4) || (mes == 6) || (mes == 9) || (mes == 11) || isNaN(iDia)) {
		if ((dia > 30) || (dia < 1)){
			return 'D\xeda incorrecto (1 a 30)';
		} 
	} else {
		if ((dia > 29) || (dia < 1) || isNaN(iDia)){
			return 'D\xeda incorrecto (1 a 29)';
		}
	}
	
	
	if (!FechaCorrecta(iAnio,iMes,iDia)){
		return 'Fecha incorrecta (dd/mm/aaaa)';
	}

	return null	
}


function FechaCorrecta(iAnio, iMes, iDia){
	var fecha = new Date(iAnio, iMes-1, iDia);	 

	if (! isNaN(fecha)) {		// Fecha valida
		if (iDia==fecha.getDate()&&iMes==(fecha.getMonth()+1)&&iAnio==fecha.getFullYear()) {	
			return true
		}
	}
	return false
}


/*
	Valida la hora en formato 99:99
*/
function horaCorrecta(strValor) {
	
	regexp = /^[0-9][0-9]:[0-9][0-9]$/;
	status = strValor.match(regexp);
	
	if(status == null)
		return false;
	
	arrHora = strValor.split(':');
	if(arrHora[0] > 23)
		return false;
	if(arrHora[1] > 59)
		return false;

	return true;
}
