// JavaScript Document
		function numero_valido(cadena){
				var valida= /[^0-9]/g;
				if (!valida.test(cadena)) {
					return true;
				}else{
					return false;
				}
			}
//Validación 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álida */ 
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/ ;
	
		/* Verificar caracteres inválidos */ 
		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("El Email parece incorrecto (revise la @ y el .')")
			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.")
			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 en de algún pais.")
			return false
		}
		
		if (len<2) {
			var errStr="La dirección es erronea"
			alert(errStr)
			return false
		}
		
		// La dirección de email ingresada es Válida
		return true;
	}
//Fin validación Email	
	function hora_valida(hora){
		var bValido = true;
		var aHora = hora.split(":");
		bValido = isFinite(aHora[0]);
		if(bValido){
			bValido = isFinite(aHora[1]);
			if (bValido){
				bValido = (aHora[0]<0 || aHora[0]>24)?false:true;
				if (bValido){
					bValido = (aHora[1]<0 || aHora[1]>60)?false:true;
				}
			}
		}
		if (!bValido){
			alert("La HORA introducida no es válida.")
		}
		return bValido;
	}
	
	function requeridosCompletos(frmP){
		var frm = eval("document."+frmP);
		var esValido = true;
		for (i=0;i < frm.elements.length ; i++){
			if (frm.elements[i].name.substr(0,1) == "R"){//es requerido
				if (frm.elements[i].value == ""){
					alert("El campo "+frm.elements[i].name.substr(2)+" es Requerido");
					esValido = false;
				}else{//Si hay valor comprobamos q sea correcto
					if (frm.elements[i].name.substr(1,1) == "T"){//Si es texto pasa.
						
					}else if ((frm.elements[i].name.substr(1,1) == "N")) {//Número
						if (!numero_valido(frm.elements[i].value)){
							alert("El número introducido en "+frm.elements[i].name.substr(2)+" no es válido.");
							esValido = false;
						}
						
					}else if ((frm.elements[i].name.substr(1,1) == "E")) {//Email
						if (!emailCheck(frm.elements[i].value)){
							esValido = false;
						}
					}else if ((frm.elements[i].name.substr(1,1) == "H")) {//Email
						if (!hora_valida(frm.elements[i].value)){
							esValido = false;
						}
					}
				}
			}else{//es opcional, pero debemos comprobar q el valor sea correcto
				if (frm.elements[i].value != ""){
					if (frm.elements[i].name.substr(1,1) == "T"){//Si es texto pasa.
						
					}else if ((frm.elements[i].name.substr(1,1) == "N")) {//Número
						if (!numero_valido(frm.elements[i].value)){
							alert("El número introducido en "+frm.elements[i].name.substr(2)+" no es válido.");
							esValido = false;
						}
						
					}else if ((frm.elements[i].name.substr(1,1) == "E")) {//Email
						if (!emailCheck(frm.elements[i].value)){
							esValido = false;
						}
					}else if ((frm.elements[i].name.substr(1,1) == "H")) {//Email
						if (!hora_valida(frm.elements[i].value)){
							esValido = false;
						}
					}					
				}
			}
		}
		return esValido;
	}	
