// Image Functions
function preload(imgObj,imgSrc) {
	if (document.images) {
		eval(imgObj+' = new Image()')
		eval(imgObj+'.src = "'+imgSrc+'"')
	}
}
function changeImage(layer,imgName,imgObj) {
	if (document.images) {
		if (document.layers && layer!=null) eval('document.'+layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src')
		else document.images[imgName].src = eval(imgObj+".src")
	}
}

// COMUN
function Hoy() {
  var oDay   = ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'];
  var oMonth = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
  var oFecha  = new Date();
  var sFecha  = oDay[oFecha.getDay()] + ", "+ oFecha.getDate() + " " + oMonth[oFecha.getMonth()] + " " + oFecha.getYear();	
  //return sFecha;
  document.getElementById('tdfecha').innerHTML = sFecha;
}

// MENUS

actual=0;
adentro=false;
dentro=false;
function ver(cual) { 
   entro()
   if (actual!=0) document.getElementById('submenu'+actual).style.visibility = 'hidden'; 
   document.getElementById('submenu'+cual).style.visibility = 'visible'; 
   actual=cual;
   }
function entro() { adentro=true; }
function salgo() { adentro=false; }
function donde(valor) { dentro=valor; }
function oculta(cual) {
   if (cual!=null) { document.getElementById('submenu'+cual).style.visibility = 'hidden'; }
   else {
          if (actual!=0) document.getElementById('submenu'+actual).style.visibility = 'hidden';
          if (actual2!=0) document.getElementById('submenu'+actual2).style.visibility = 'hidden';
        }
   actual=0;
   }
function cierra() {
   if ((actual!=0) && (!dentro) & (!adentro)) {
     document.getElementById('submenu'+actual).style.visibility = 'hidden';
     actual=0;
     }
   setTimeout('cierra()',2000)
   }

// SUBMENUS

actual2=0;
adentro2=false;
dentro2=false;
function ver2(cual) { 
   entro2()
   if (actual2!=0) document.getElementById('submenu'+actual2).style.visibility = 'hidden'; 
   document.getElementById('submenu'+cual).style.visibility = 'visible'; 
   actual2=cual;
   }
function entro2() { adentro2=true; }
function salgo2() { adentro2=false; }
function donde2(valor) { dentro2=valor; }
function oculta2(cual) {
   if (cual!=null) { document.getElementById('submenu'+cual).style.visibility = 'hidden'; }
   else { if (actual2!=0) document.getElementById('submenu'+actual2).style.visibility = 'hidden'; }
   actual2=0;
   }
function cierra2() {
   if ((actual2!=0) && (!dentro2) & (!adentro2)) {
     document.getElementById('submenu'+actual2).style.visibility = 'hidden';
     actual2=0;
     }
   setTimeout('cierra2()',1000)
   }

// EFECTO MOUSEOVER PARA TDs

function on(obj)  { document.getElementById(obj).className = 'tdon'; }
function off(obj) { document.getElementById(obj).className = 'tdoff'; }
function go(url)  { document.location.href = url; }

// VENTANAS
function ventana(url,w,h)  {  window.open(url,"vnds","toolbar=no,scrollbars=no,width="+w+",height="+h);  }
function ventanaS(url,w,h) {  window.open(url,"vnds","toolbar=no,scrollbars=yes,status=yes,resizable=yes,width="+w+",height="+h); }

// ACTIVAR CAMPOS
activado=false
function activar(f) {
  if (!activado) {
    f.fdd.disabled = false;
    f.fdh.disabled = false;
    f.cli.disabled = false;
    f.so.disabled = false;
    f.da.disabled = false;
    activado=true;
    }
  else {
    f.fdd.disabled = true;
    f.fdh.disabled = true;
    f.cli.disabled = true;
    f.so.disabled = true;
    f.da.disabled = true;
    activado=false;
    }
  }
  
function avisolegal(){
	direccion="avisolegal.php";
	window.open(direccion,'aviso','top=100,left=100,width=450,height=400,resize=1,scrollbars=1');
}
function privacidad(){
	direccion="privacidad.php";
	window.open(direccion,'privacidad','top=100,left=100,width=450,height=400,resize=1,scrollbars=1');
}
function avisolegalback(){
	direccion="../avisolegal.php";
	window.open(direccion,'aviso','top=100,left=100,width=450,height=400,resize=1,scrollbars=1');
}
function privacidadback(){
	direccion="../privacidad.php";
	window.open(direccion,'privacidad','top=100,left=100,width=450,height=400,resize=1,scrollbars=1');
}
function faqusuarios(){
	direccion="faqs_usuarios.htm";
	window.open(direccion,'fu','toolbar=no,menubar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,width=540,height=426,top=10,left=10');
}
function guardarfavoritos(){
var url="http://www.topformacion.com" 
var titulo="Topformacion.com"

if (document.all)
window.external.AddFavorite(url,titulo)

}
function validarbuscador(){
	f=document.buscador;
	
	if ((f.libre.value=="")&&(f.categoria_id.value=="")&&(f.tipo.value==""))
		alert("Se más específico en tu búsqueda");
	else
		f.submit();

}

function emailCheck (emailStr) {
/* The following pattern is used to check if the entered e-mail address
   fits the user@domain format.  It also is used to separate the username
   from the domain. */
var emailPat=/^(.+)@(.+)$/
/* The following string represents the pattern for matching all special
   characters.  We don't want to allow special characters in the address. 
   These characters include ( ) < > @ , ; : \ " . [ ]    */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
/* The following string represents the range of characters allowed in a 
   username or domainname.  It really states which chars aren't allowed. */
var validChars="\[^\\s" + specialChars + "\]"
/* The following pattern applies if the "user" is a quoted string (in
   which case, there are no rules about which characters are allowed
   and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
   is a legal e-mail address. */
var quotedUser="(\"[^\"]*\")"
/* The following pattern applies for domains that are IP addresses,
   rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
   e-mail address. NOTE: The square brackets are required. */
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
/* The following string represents an atom (basically a series of
   non-special characters.) */
var atom=validChars + '+'
/* The following string represents one word in the typical username.
   For example, in john.doe@somewhere.com, john and doe are words.
   Basically, a word is either an atom or quoted string. */
var word="(" + atom + "|" + quotedUser + ")"
// The following pattern describes the structure of the user
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
/* The following pattern describes the structure of a normal symbolic
   domain, as opposed to ipDomainPat, shown above. */
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


/* Finally, let's start trying to figure out if the supplied address is
   valid. */

/* Begin with the coarse pattern to ????????.?A.?º?°simply break up user@domain into
   different pieces that are easy to analyze. */
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
  /* Too many/few @'s or something; basically, this address doesn't
     even fit the general mould of a valid e-mail address. */
	alert("La dirección de correo parece inválida (comprobar @ and .'s)")
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

// See if "user" is valid 
if (user.match(userPat)==null) {
    // user is not valid
    alert("El usuario no parece ser válido.")
    return false
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
   host name) make sure the IP address is valid. */
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("IP de destino incorrecta.")
		return false
	    }
    }
    return true
}

// Domain is symbolic name
var domainArray=domain.match(domainPat)
if (domainArray==null) {
	alert("El dominio no parece ser válido.")
    return false
}

/* domain name seems valid, but now make sure that it ends in a
   three-letter word (like com, edu, gov) or a two-letter word,
   representing country (uk, nl), and that there's a hostname preceding 
   the domain or country. */

/* Now we need to break up the domain to get a count of how many atoms
   it consists of. */
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) {
   // the address must end in a two letter or three letter word.
   alert("La dirección debe terminar con un dominio de 3 letras, o un nombre de país de dos letras.")
   return false
}

// Make sure there's a host name preceding the domain.
if (len<2) {
   var errStr="¡A esta dirección le falta un nombre de host!"
   alert(errStr)
   return false
}

// If we've gotten this far, everything's valid!
return true;
}
function aceptarboletin(){
if (emailCheck(document.boletin.email.value)){
	direccion="boletin.php?email="+document.boletin.email.value;
	window.open(''+direccion+'','boletin','toolbar=no,menubar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,width=540,height=610,top=10,left=10');
}
}