/// Correo
function validarFormatoCorreo (cadena) {
  var cadenamin = cadena.toLowerCase();
  for (i=0;i<cadenamin.length;i++) {
     var valor = cadenamin.charAt(i);
     if (valor != '@' && valor != '.' && valor != '-' && ! (valor >= '0' && valor <= '9') && valor != '_'
         && ! (valor >= 'a' && valor <= 'z') ) {
           return false;
     }
  }
  indice = cadena.indexOf('@');
  if (indice == -1 || indice == 0) {
     return false;
  }
  resto = cadena.substr(indice + 1);
  indicepunto = resto.indexOf(".");
  if (indicepunto == 0 || indicepunto == -1 || indicepunto == resto.length - 1) {
     return false;
  }
  if (cadena.charAt (cadena.length - 1) == '.') {
     return false;
  }
  tabla = resto.split (".");
  longitud = tabla.length;
  if (longitud < 2) {
      return false;
  }
  return true;
}

// Comprobacion contactos No multilenguaje
function validarCaracteresUsAscii (cadena) {
   for (i=0; i<cadena.length; i++) {
      codigo = cadena.charCodeAt(i);
      if (! (cadena.charCodeAt(i) >= 32 && cadena.charCodeAt(i) <= 128) ) {
         return false;
      }
   }
   return true;
}

/// Campo solo con valores numericos
function validarFormatoNumerico (cadena) {
  for (i=0; i<cadena.length; i++) {
      if ( ! (cadena.charAt(i) >= '0' && cadena.charAt(i) <= '9') ) {
            return false;
      }
   }
   return true;
}


// Comprobar telefono
function validarTelefono (cadena, resultado) {
   var devolver = true;
   var causa = 1;
   var mistring = "";
   var indice = cadena.indexOf (".");
   if (cadena.charAt(0) != '+') {
      devolver = false;
      causa = -1;
      mistring = " debe comenzar con el caracter '+'";
   }
   if (causa == 1 && indice == -1) {
      devolver = false;
      causa = -2;
      mistring = " no contiene el punto separador entre codigo de pais y numero local de telefono/fax";
   }
   codigo_pais = cadena.substr(1,indice-1);
   numero_telefono = cadena.substr (indice + 1);
   if (causa == 1 && codigo_pais == "") {
      causa = -3;
      devolver = false;
      mistring = " no contiene codigo de pais";
   }
   if (causa == 1 && !validarFormatoNumerico (codigo_pais)) {
      causa = -4;
      devolver = false;
      mistring = " contiene caracteres no validos (numericos, '+', '.')";
   }
   if (causa == 1 && numero_telefono == "") {
      causa = -5;
      devolver = false;
      mistring = " no contiene numero local de telefono/fax";
   }
   if (causa == 1 && !validarFormatoNumerico (numero_telefono)) {
      causa = -6;
      devolver = false;
      mistring = " contiene caracteres no validos (numericos, '+', '.')";
   }
   if (causa != 1) {
      alert (resultado + mistring);
   }
   return devolver;
}

/// Cambia el prefijo telefonico de un telefono/fax si cambia el pais seleccionado
function cambiarTfno (origen, destino) {
  var indice = origen.selectedIndex;
  var valor = origen.options[indice].value;
  if (valor != "" && valor.indexOf(".") != -1) {
     var indice = valor.indexOf(".");
     valor = valor.substr (0, indice);
  }
  if (valor != "") {
    eval ("destino.value = '+' + paises." + valor);
    eval ("destino.value = destino.value + '.'");
  } else {
    destino.value = "";
  }
}
