// JavaScript Document

//	document.getElementById("divFiltroValores"+numeroFiltro).innerHTML ="Loading..."
//	makePOSTRequest(urlFilterGenerator,parametros,"catchFiltroValor["+numeroFiltro+"]",false);

	function makePOSTRequest(url, parameters, funcionObservadora, return_xml) {
	  var http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
	  
	  alerta = function(){
	  	alertContents(http_request);
		}
	  
	  http_request.onreadystatechange = function() { 
		   if (http_request.readyState == 4) { 
			   if (http_request.status == 200) { 
				   if (return_xml) { 
					   eval(funcionObservadora + '(http_request.responseXML)'); 
				   } else { 
					   eval(funcionObservadora + '(http_request.responseText)'); 
				   } 
			   } else { 
				   alert('There was a problem with the request.(Code: ' + http_request.status + ')'); 
			   } 
		   } 
	  }
	  

      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

// Validaciones

function verificarEmail(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("La dirección de E-mail es incorrecta (revise la @ y los puntos(.))");
		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 del E-mail 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 del E-mail 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 de E-mail 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 de E-mail es erronea";
		alert(errStr);
		return false;
	}

	// La dirección de email ingresada es Válida
	return true;
}

function verificarLleno(idCampo,nombreCampo,idFocus){
// nombreCampo es un string para lanzar una ventana de advertencia
// nameCampo es el valor del atributo name del radio
	var campo=document.getElementById(idCampo);
	if(campo==null || campo.value==""){
		alert("Olvidó ingresar el valor del campo:\""+nombreCampo+"\"");
		if(idFocus==null)
			idFocus=idCampo;
		var campoFocus=document.getElementById(idFocus);
		campoFocus.focus();
		return false;
	}
	return true;
}


