/* Funciones Genéricas para los tratamientos de formularios.
/* Todas las funciones tienen en cuenta que para las validaciones existe un elemento que admite código
/* HTML dentro y cuyo id es el nombre del campo a validar más '_msg'
*/

function limpiarCampo(campo){
	var c = document.getElementById(campo);
	c.value='';
}	

function validarCampo(IdCampo){
	var campo = document.getElementById(IdCampo);
	var msg = document.getElementById(IdCampo+'_msg');
	msg.innerHTML="";
	if (campo.value == '' || campo.value.length <= 0){
		msg.innerHTML="<img src='./images/exclamation.gif' title='texto obligatorio'>";
		return false;
	}
	return true;
}


function validarPassword(pass,confirmacion){
	var campoPass = document.getElementById(pass);
	var campoConf = document.getElementById(confirmacion);
	var msg = document.getElementById(confirmacion+'_msg');
	msg.innerHTML="";
	if (campoPass.value != campoConf.value){
		msg.innerHTML="La contraseña y la validación no coinciden";
		return false;
	}
	return true;
}

function numbersonly(myfield, e, allowPoint)
{
var key;
var keychar;
var numbStr = "0123456789";
if (allowPoint)
	numbStr+='.';

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if (((numbStr).indexOf(keychar) > -1))
   return true;
return false;
}

function entsub(event) {
  var tecla;
  if (window.event)
  	tecla = window.event.keyCode;
  else
  	tecla = event.which;
  if (tecla == 13)
  	validar();
  else
  	return true;
}

function trim(cadena)
{
	for(i=0; i<cadena.length; )
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(i+1, cadena.length);
		else
			break;
	}

	for(i=cadena.length-1; i>=0; i=cadena.length-1)
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(0,i);
		else
			break;
	}
	
	return cadena;
}

function checkEmail (emailStr) {

if (trim(emailStr)=='' || emailStr.length==0){
	return true;
}

/* 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 + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");


var matchArray=emailStr.match(emailPat);

if (matchArray==null) {
	//alert("E-mail incorrecto");
	return false;
}
var user=matchArray[1];
var domain=matchArray[2];

// Si el user "user" es valido 
if (user.match(userPat)==null) {
	// Si no
	//alert("Nombre de usuario incorrecto");
	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 incorrecto");
			return false;
		}
	}
	return true;
}

var domainArray=domain.match(domainPat);
if (domainArray==null) {
	//alert("E-mail incorrecto");
	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("E-mail incorrecto");
	return false;
}

if (len<2) {
	var errStr="E-mail incorrecto";
	//alert(errStr);
	return false;
}

// La dirección de email ingresada es Válida
return true;
}

function numbersonly(myfield, e, allowPoint)
{
var key;
var keychar;
var numbStr = "0123456789";
if (allowPoint)
	numbStr+='.';

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if (((numbStr).indexOf(keychar) > -1))
   return true;
return false;
}
