function jumpMenu(selObj,restore){ 
// Ing. Anibal Pendás Amador
// xpendas@segob.gob.mx
  
  if(selObj.options[selObj.selectedIndex].value=="titulo"){
  }else {
  window.open(selObj.options[selObj.selectedIndex].value,"nueva");  
  if (restore) selObj.selectedIndex=0;
  }
  
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

<!--By Gon-->

function ValidarCharEx(sCharEx) {
	var oRegExp = new RegExp("^[A-Za-z0-9]+$","i");
	return sCharEx.match(oRegExp);
}

function ValidarCharEx2(sCharEx) {
	var oRegExp = new RegExp("^[\ A-Za-z0-9]+$","i");
	return sCharEx.match(oRegExp);
}

function ValidarCharEx3(sCharEx) {
	var oRegExp = new RegExp("^[\ñ\Ñ\ A-Za-z0-9]+$","i");
	return sCharEx.match(oRegExp);
}

function ValidarCharEx3(sCharEx) {
	var oRegExp = new RegExp("^[\ñ\Ñ\ A-Za-z0-9]+$","i");
	return sCharEx.match(oRegExp);
}

<!--By Gon-->

function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

// Creación de un objeto para manejar los errores
var error = new crear_error();
	   
// Crea un objeto que guarda un mensaje de error y un 
// indice a la posición donde se ha producido dentro de una cadena
function crear_error()
{
this.mensaje = "";
this.posicion = 0;
this.rellenar = rellenar;
}
	  
// Método del objeto "crearerror" que rellena el error con un mensaje
// explicativo y la posición donde se produjo dentro de la cadena validada
function rellenar(mensaje, posicion) {
	this.mensaje = mensaje;
	this.posicion = posicion;
	return false;
}

// Determina si un carácter es un número
function es_numero(car) {
	var NUMEROS = "0123456789";
	return (NUMEROS.indexOf(car) >= 0)
}
	   
// Determina si un año es bisiesto
function es_bisiesto(anio) {
	if (((anio % 4 == 0) && anio % 100 != 0) || anio % 400 == 0) 
		return true;
	return false;
}

// Comprueba si una fecha es correcta
function comprobar_fecha(contenido, error) {
	var separador_fecha = "/";
	var numero_separadores = 0;

	if ((contenido.length == 0))
		return error.rellenar("Por favor seleccione una fecha.", 1);

	// Comprobación de la sintáxis de una fecha 
	for (var i = 0; i < contenido.length; i++) {
		var caracter = contenido.charAt(i);
		if (!es_numero(caracter) && caracter != separador_fecha)
			return error.rellenar("La Fecha solo puede tener números y el separador (/).", i + 1); 
		if (caracter == separador_fecha)
			numero_separadores++ 
	}
	if (numero_separadores != 2)
		return error.rellenar("Faltan separadores (/) en la fecha.", i + 1); 
	    
	// Comprobación de la semántica de una fecha
/*	var posicion_separador_1 = contenido.indexOf(separador_fecha);
	var anio = contenido.substring(0, posicion_separador_1);
	var posicion_separador_2 = contenido.indexOf(separador_fecha,posicion_separador_1 + 1);
	var mes = contenido.substring(posicion_separador_1 + 1, posicion_separador_2); 
	var dia = contenido.substring(posicion_separador_2 + 1, 10);*/

	var posicion_separador_1 = contenido.indexOf(separador_fecha);
	var dia = contenido.substring(0, posicion_separador_1);
	var posicion_separador_2 = contenido.indexOf(separador_fecha,posicion_separador_1 + 1);
	var mes = contenido.substring(posicion_separador_1 + 1, posicion_separador_2); 
	var anio = contenido.substring(posicion_separador_2 + 1, 10);


	if (anio.length != 4)
		return error.rellenar("El Año es incorrecto.", 6); 
	if (mes < 1 || mes > 12)
		return error.rellenar("El Mes es incorrecto.", 4);
	if ((dia < 1 || dia > 31) || (mes == 4 && dia > 30) ||
		(mes == 6 && dia > 30) || (mes == 9 && dia > 30) ||
		(mes == 11 && dia > 30) || (mes == 2 && es_bisiesto(anio) && dia > 29) ||
		(mes == 2 && !es_bisiesto(anio) && dia > 28))
		return error.rellenar("El Día es incorrecto.", 2);
	return true 
} 
	  
// Ejecuta la validación pedida
function ejecuta(valor) {
	if (comprobar_fecha(valor, error))
		return true;
	else
		return false;
}

function LimiteCaracteres(campo, Limite) {
	if (campo.value.length > Limite)
		campo.value = campo.value.substr(0, Limite);
	return;
}

function numerico(cadena)
{
    if(cadena.match(/[^\.0-9]+/)) {
		//alert("El campo "+campo+" solo puede contener numeros!.");
		return false;
    }
    else
		return true;
}

function es_numero_decimal(cadena)
{
    if(cadena.match(/^\-?[0-9]+\.?[0-9]*$/)) {
		return true;
    }
    else
		return false;
}

function es_numero_entero(cadena)
{
    if(cadena.match(/^[\-]?[0-9]+$/)) {
		return true;
    }
    else
		return false;
}

function es_numero_natural(cadena)
{
    if(cadena.match(/^[0-9]+$/)) {
		return true;
    }
    else
		return false;
}

function alfanumerico_comas(cadena)
{
    if(cadena.match(/[^\.,0-9a-zA-Z ]+/))
    {
	//alert("El campo "+campo+" solo puede contener letras, numeros y comas!.");
	return false;
    }
    else
	return true;
}

function es_numero_telefono(cadena) {
    if (cadena.match(/^[0-9]+-?[0-9]+$/))
	return true;
    else
	return false;
}

function dameFechaYYYYMMDD(fecha, separador_fecha) {

	var posicion_separador_1 = fecha.indexOf(separador_fecha);
	var dia = fecha.substring(0, posicion_separador_1);
	var posicion_separador_2 = fecha.indexOf(separador_fecha,posicion_separador_1 + 1);
	var mes = fecha.substring(posicion_separador_1 + 1, posicion_separador_2); 
	var anio = fecha.substring(posicion_separador_2 + 1, 10);

	return (anio+mes+dia);
}

function emsTweak()
{
	if ((document.createElement) && (document.createTextNode))
	{
		document.writeln('<div id="emsTest" style="position:absolute; visibility:hidden; font-family:arial,helvetica,sans-serif">&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br /></div>');
		var scaling=100;
		if ((navigator.platform=="Win32") && (navigator.appName=="Microsoft Internet Explorer")) scaling=105;
		var h=999;
		if (document.getElementById('emsTest').clientHeight) h=parseInt(document.getElementById('emsTest').clientHeight);
		else if (document.getElementById('emsTest').offsetHeight) h=parseInt(document.getElementById('emsTest').offsetHeight);
		if (h<85) document.body.style.fontSize=Math.round(scaling*90/h)+"%";
	}
}