		function Entero(x, msg){ if(isNaN(x.value) || x.value.indexOf(".")!=-1){Action(x, msg); return true}}
		function noEntero(x, msg){ if(isNaN(x.value) || x.value.indexOf(".")!=-1 || x.value.indexOf("-")!=-1){Action(x, msg); return true}}
		function ValLen(x, i, msg) { if(x.value.length > i){Action(x, msg); return true} }
		function ValSor(x, i, msg) { if(x.value.length < i){Action(x, msg); return true} }
		function ValLenExact(x, i, msg) { if(x.value.length != i){Action(x, msg); return true} }
		
		
		
		function trim(x)
		{
			while(x.value.substring(0,1)==" "){x.value = x.value.substring(1, x.value.length);}
			while(x.value.substring(x.value.length-1,x.value.length)==" "){x.value = x.value.substring(0, x.value.length-1);}
		}
		
		function Action(x, msg){alert(msg); x.focus();}
		
		function vacio(x, msg)
		{
			trim(x);
			if(x.value == ""){Action(x, msg); return true}
		}
		function wrongEmail(x, msg)
		{
			if(x.value.indexOf("@") == -1){Action(x, msg); return true}
			if(x.value.indexOf(".") == -1){Action(x, msg); return true}
		}
		
		
		
		function wrongTel(x, msg)
		{
			if(x.value.indexOf("(") == -1){Action(x, msg); return true}
			if(x.value.indexOf(")") == -1){Action(x, msg); return true}
			if(x.value.indexOf("-") == -1){Action(x, msg); return true}
			if(x.value.indexOf(" ") == -1){Action(x, msg); return true}
		}

		
		
		function noSel(x, msg){ if(x.selectedIndex==0){Action(x, msg); return true}}
		function noCheck(x, msg)
		{
			var i;
			for(i=0; i<x.length; i++)
			{
				if(x[i].checked)
				{
					return false;
				}
			}
			Action(x[0], msg);
			return true;
		}

/// validacion de correo electrónico******************************
function emailCheck (emailStr) 
{
	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) {
		alert("La direccion de correo es incorrecta (nombre @ domicio.com)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
    	// user is not valid
    	alert("El nombre de usuario no es válido")
    	return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
    	// this is an IP address
	  	for (var i=1;i<=4;i++) {
	    	if (IPArray[i]>255) {
	        	alert("Destination IP address is invalid!")
				return false
	    	}
    	}
    	return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("el nombre de dominio no es 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 direccion debe de terminar con 3 letras del dominio o 2 del pais ejemplo .com, .net, .mx, .es")
   			return false
	}
	if (len<2) {
   		var errStr="La direccion no cuenta con hostname!"
   		alert(errStr)
   		return false
	}
	return true;
}