// Api de funciones para Wizard
// Programador: John D. Torres Barreto
// inicio: 22/09/2003 | 23/09/03

num = 21;

function numactual(){
  if (num < 10) {
    donde = 'archivo/' + num + '/default.asp';
  } else {
    donde = 'archivo/' + num + '/default.asp';
  }
  window.location = donde;
}

function abre_ventana() {
  window.open ("portada.html", "Wizard", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=410,height=550");
}

function resol(profun){
  if (profun == 0){
    //800
    barrasup1   = '<img src="../../images/cabecera_05.gif">';
    barrasup2   = '../../images/cabecera_06.gif';
    //1024
    barra1024_1 = '<img src="../../images/cabe1024_06.gif">';
    barra1024_2 = '../../images/cabe1024_07.gif';
  } else if (profun == 1){
    //800
    barrasup1   = '<img src="../images/cabecera_05.gif">';
    barrasup2   = '../images/cabecera_06.gif';
    //1024
    barra1024_1 = '<img src="../images/cabe1024_06.gif">';
    barra1024_2 = '../images/cabe1024_07.gif';
  } else if (profun == 2) {
    //800
    barrasup1   = '<img src="images/cabecera_05.gif">';
    barrasup2   = 'images/cabecera_06.gif';
    //1024
    barra1024_1 = '<img src="images/cabe1024_06.gif">';
    barra1024_2 = 'images/cabe1024_07.gif';
  }
  
  if (document.getElementById) {
    if (window.HTMLElement) {   //ESTE ES EL QUE FUNCIONA PARA NETSCAPE 6.X
      if (isNS6 && (screen.width >= 1024)){
        // Barra superior
        barra01 = document.getElementById('barra1024_01');
        barra02 = document.getElementById('barra1024_02');

        while (barra01.hasChildNodes()) barra01.removeChild(barra01.lastChild);
        var range = document.createRange();
        range.selectNodeContents(barra01);
        barra01.appendChild(range.createContextualFragment(barra1024_1));
        //
        barra02.setAttribute("style", "background-image:url(" + barra1024_2 + ");");
      }
      else if (isNS6 && (screen.width <= 800)){
        // Barra superior
        barra01 = document.getElementById('barra1024_01');
        barra02 = document.getElementById('barra1024_02');

        while (barra01.hasChildNodes()) barra01.removeChild(barra01.lastChild);
        var range = document.createRange();
        range.selectNodeContents(barra01);
        barra01.appendChild(range.createContextualFragment(barrasup1));
        //
        barra02.setAttribute("style", "background-image:url(" + barrasup2 + ");");
      }
    }
    else {
      if (isIE && (screen.width >= 1024 || screen.height >= 768)){
        barra1024_01.innerHTML  = barra1024_1;
        barra1024_02.background  = barra1024_2;
      }
      else if (isIE && (screen.width <= 800 || screen.height <= 600)){
        barra1024_01.innerHTML   = barrasup1;
        barra1024_02.background  = barrasup2;
      }
    }
  }
}

function fecha(){
  //estampa el mensaje en la barra de estado
  var estado = "";
  estado = "Bienvenido a la Revista Wizard en Internet";
  numeo = '# ' + num;
  
  var DiaSemana = new Array('Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado');
  var QueMes = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre',
                          'Octubre','Noviembre','Diciembre');
  var laFecha = new Date();
  var ano = (laFecha.getYear() < 200 ? laFecha.getYear() + 1900 : laFecha.getYear());
  var dia = laFecha.getDate();
  hoy = DiaSemana[laFecha.getDay()] + ', ' + laFecha.getDate() + ' de ' + QueMes[laFecha.getMonth()] +
  ' de ' + (laFecha.getYear() < 200 ? laFecha.getYear() + 1900 : laFecha.getYear());
  
  
  if (document.getElementById) {
    if (window.HTMLElement) {   //ESTE ES EL QUE FUNCIONA PARA NETSCAPE 6.X
      spanNode = document.getElementById('estampafecha');
      while (spanNode.hasChildNodes()) spanNode.removeChild(spanNode.lastChild);
      var range = document.createRange();
      range.selectNodeContents(spanNode);
      spanNode.appendChild(range.createContextualFragment(hoy));
      //
      spanNode = document.getElementById('numero');
      while (spanNode.hasChildNodes()) spanNode.removeChild(spanNode.lastChild);
      var range = document.createRange();
      range.selectNodeContents(spanNode);
      spanNode.appendChild(range.createContextualFragment(numeo));
    }
    else {
      estampafecha.innerText = hoy;
      numero.innerText       = numeo;
      window.defaultStatus = estado;
    }
  }
  else if (document.layers) {  //ESTE ES PARA NETSCAPE VIEJO
    document.layers['estampafecha'].document.open();
    document.layers['estampafecha'].document.writeln(hoy);
    document.layers['estampafecha'].document.close();
    //
    document.layers['numero'].document.open();
    document.layers['numero'].document.writeln(numeo);
    document.layers['numero'].document.close();
  }
}

function abri(destino){
  window.location = destino;
}

function yaestas(){
  mensaje = 'Ya estás en la página';
  window.alert(mensaje);
}

//
//// Links todavia no desarrollados
//
function nodisp(){
  mensaje = 'Vínculo no disponible';
  window.alert(mensaje);
}

//Funciones para el manejo de suscripciones comunes

function validar_datos(){
  if (document.suscrispain.nombre.value == ""){
    alert ("Olvidaste completar el campo Nombre");
    document.suscrispain.nombre.focus();
    return false; 
  } 
  if (document.suscrispain.apellido.value == ""){
    alert ("Olvidaste completar el campo Apellidos");
    document.suscrispain.apellido.focus();
    return false; 
  } 
  if (document.suscrispain.direccion.value == ""){
    alert ("Olvidaste completar el campo Dirección");
    document.suscrispain.direccion.focus();
    return false; 
  } 
  if (document.suscrispain.cpostal.value == ""){
    alert ("Olvidaste completar el campo Código Postal");
    document.suscrispain.cpostal.focus();
    return false; 
  } 
  if (document.suscrispain.ciudad.value == ""){
    alert ("Olvidaste completar el campo Ciudad");
    document.suscrispain.ciudad.focus();
    return false; 
  } 
  if (document.suscrispain.provincia.value == ""){
    alert ("Olvidaste completar el campo Provincia");
    document.suscrispain.provincia.focus();
    return false; 
  } 
  if (document.suscrispain.correo.value == ""){
    alert ("Olvidaste completar el campo Correo Electrónico");
    document.suscrispain.correo.focus();
    return false; 
  } else {
    if (!emailcheck(document.suscrispain.correo.value)) {
      document.suscrispain.correo.focus();
      return false;
    }
  }
  
  no = false;
  for (i=0; i<=3; i++){
    no = no || document.suscrispain.fpago[i].checked;
  }
  if(no){
    document.suscrispain.submit();
    return no;
  }
  else{
    alert("Debes indicar una forma de pago");
    document.suscrispain.fpago[0].focus();
    return no;
  }
}

//////
// Funciones de validación finales
// ======================= EMAIL CHECK ==============================

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 + ")*$")
/* dominio, como opuesto a ipDomainPat, se muestra abajo. */
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
  window.alert("La dirección de email parece incorrecta (compruebe @ y .'dom')");
  return false;

}
var user=matchArray[1]
var domain=matchArray[2]

// Si el user "user" es valido 
if (user.match(userPat)==null) {
// Si no
  window.alert("El nombre de usuario de email 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) {
      window.alert("IP de destino de email inválida");
      return false;
    }
  }
  return true;
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
  window.alert("El dominio del email 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) { 
  window.alert("La dirección de email debe tener 3 letras si es .com o 2 si es de algún país.");
  return false;
}

if (len<2) {
  var errStr="El email es erróneo";
  window.alert(errStr);
  return false;
}

// La dirección de email ingresada es Válida
  return true;
}

// ============= FIN EMAIL CHECK ======================== 