// Javascript desarrollado por INTERNETAMEDIDA S.L. 
ns4 = (document.layers)? true:false; 
ie4 = (document.all)? true:false;
ns6 = (document.getElementById) ? true:false; 

titNovedades = new Array;  
titNovedades["es"]=new Array("Periodo de Inscripción.",
						     "Periodo de envío de trabajos científicos.",
							 "Programa preliminar.",
							 "Plataformas móviles."
						    );

txNovedades = new Array;  
txNovedades["es"]=new Array ("Comprende desde el 1 de Febrero de 2012 hasta el 14 de Abril de 2012.",
							 "Se podr&aacute;n enviar desde el 1 de Febrero de 2012 hasta el 27 de Abril de 2012.",
							 "Puede ver el programa en formato PDF pinchando <a href='pdf/programa.pdf' target='_blank'>aqui</a>.",
							 "Se podrá acceder a la página del Congreso a través de plataformas móviles."
							 );


desNovedades = new Array;
desNovedades["es"]=new Array ("El periodo de inscripción comenzará a las 13 horas (Horario peninsular de España: UTC + 1) del día 1 de Febrero de 2012 hasta las 13 horas (Horario peninsular de España: UTC + 1) del día 14 de Abril de 2012.",
							  "El periodo de envío de los trabajos se podrá realizar desde a las 13 horas (Horario peninsular de España: UTC + 1) del día 1 de Febrero de 2012 hasta las 13 horas a las (Horario peninsular de España: UTC + 1) del día 27 de Abril de 2012.",
							  "",
							  "Los congresistas inscritos podrán acceder a la página del Congreso a través de plataformas móviles e intervenir de forma directa en los foros."
							 );

lenguage = "es";
mensajes = new Array;
mensajes["es"]=new Array("Debe introducir los campos obligatorios.",
						 "Debe introducir una dirección de correo válida.",
						 "Debe introducir el usuario y la contraseña.",
						 "Debe introducir un CIF válido.",
						 "Debe introducir un NIF/NIE válido. Introduzca los nueve caracteres, letras y numeros, sin puntos, ni guiones, ni espacios.",
						 "Debe introducir un CIF/NIF válido.",
						 "Debe introducir una dirección web válida.",
						 "Debe introducir una fecha válida con el formato dd/mm/aaaa.",
						 "El resumen debe tener una logitud máxima de 1.540 caracteres.",
						 "Los items 2, 3, 4, 5, 6, 7 y 8 deben tener una lontitud total máxima de 14.300 caracteres.",
						 "El coautor ya se encuentra vinculado a esta comunicación.",
						 "El registro seleccionado ha realizado el pago de la inscripcion. ¿ Desea eliminar el registro de todas formas ?",
						 "Introduzca los nueve primeros caracteres del pasaporte, letras y numeros, sin puntos, ni guiones, ni espacios.",
						 "Debe especificar el tipo de documento.",
						 "Debe borrar el video antes de actualizar los datos.",
						 "No es posible eliminar una inscripción que haya realizado el pago.",
						 "Debe previsualizar la comunicación antes de enviarla.",
						 "Debe aceptar las normas de envío de trabajos antes de enviar una comunicación.",
						 "Debe asignar un evaluador a la comunicación.",
						 "Debe puntuar la comunicación antes de publicarla.",
						 "Al modificar el email de una inscripción pendiente de confirmación (PC) debe volver a enviar el email de confirmación."
						);

titNov = "";
desNov = "";

alertas = new Array;
alertas["I"]=new Array("Registro insertado CORRECTAMENTE."
						);

alertas["U"]=new Array("Registro actualizado CORRECTAMENTE."
						);

alertas["D"]=new Array("Registro eliminado CORRECTAMENTE."
						);

//Patrones para validar los campos
var pt_digitos = /^\d*$/;
var pt_alfanum = /^[A-Za-z0-9]*$/;
//var pt_email= /[A-Za-z0-9_\+\-\.]+@[A-Za-z0-9\-]+(\.[A-Za-z]{2,3})?\.[A-Za-z]{2,3}$/;
var pt_email= /[A-Za-z0-9_\+\-\.]+@([A-Za-z0-9\-]+\.)*[A-Za-z0-9\-]+(\.[A-Za-z]{2,4})?\.[A-Za-z]{2,4}$/;
//var pt_email=/\w.+\@\w.+\.[a-z]{2,3}$/;
var pt_cif=/^[AaBbCcDdEeFfGgHhJjKkLlMmNnPpQqSsUuVvWwRr][0-9]{7}[AaBbCcDdEeFfGgHhIiJj0123456789]$/;
var pt_nif=/^([XxYyZz]|[0-9])[0-9]{7}([a-z]|[A-Z])$/;
var pt_pas=/^[A-Za-z0-9]{9}$/;
var pt_archivo = /^[A-Za-z0-9_\-]*$/;

// Variables globales para el grid de registros
id_sel = 'NULL';
class_sel = 'pijama_sel';
class_antes_Over = 'pijama';
obj_selected = null;
// Variables globales para el grid de registros

function WriteClassOnMouseOut (obj) {
  
    if (obj.id!=id_sel) {
	  	obj.className = class_antes_Over;
	}
}

function WriteClassOnMouseOver (obj) {
	
    if (obj.id!=id_sel) {	  	
	  	obj.className = class_sel;
	}
}

function select_registro (obj) {
 
	if (obj == obj_selected) {

	  // Se quiere deseleccionar el registro
	  id_sel = "NULL"; 
	  obj_selected.className = class_antes_Over;
	  obj_selected.id = '';
	  obj_selected = null;
	}
	else {
		  if (obj_selected != null) {
			// Restituimos el registro seleccionado si previamente habiamos seleccionado uno.
			obj_selected.className = class_antes_Over;
			obj_selected.id = '';
			obj_selected = null;
		  }
		  else {
			id_sel = "selec";
		  }
	  
	  obj.id = 'selec';
	  obj.className = class_sel;
	  obj_selected = obj;

	}
	  	
}

function mayusculas(obj) {
	obj.value = obj.value.toUpperCase();
}

function minusculas (obj) {
	obj.value = obj.value.toLowerCase();
}

function login (form) {	
	if(form.usrUsuario.value.length > 0 && form.usrPwd.value.length > 0){
		//alert("En proceso de construcción. Disculpe las molestias.");
		form.submit();
	}
	else{
		alert("Debe rellenar los campos usuario y contraseña.");
	}
}

function MM_openBrWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: abrirNovedad()
--Descripción..: Cierra la novedad abierta y abre la que recibe por parametro
--Parámetros...: indice -> novedad a abrir
--Utilizado por: Toda la parte publica
--Ult. modific.: 10/01/2012 - Jaime
-------------------------------------------------------------------------------------
*/
function abrirNovedad (indice) {
	for(i=1;i<=20;i++) {
		cerrarNovedad(i);
	}
	
	obj = document.getElementById("detalleNovedad"+indice);
	obj.style.visibility = "visible";
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: cerrarNovedad()
--Descripción..: Cierra la novedad que recibe por parametro
--Parámetros...: indice -> novedad a cerrar
--Utilizado por: Toda la parte publica
--Ult. modific.: 10/01/2012 - Jaime
-------------------------------------------------------------------------------------
*/
function cerrarNovedad (indice) {
	obj = document.getElementById("detalleNovedad"+indice);
	if (obj!=null) {
		obj.style.visibility = "hidden";
	}
}

function comprobarEmail(obj){
	cadena = obj.value;
	if (cadena.length > 0) {
    	if (cadena.search(pt_email) != 0) { 
			alert(mensajes[lenguage][1]);
			obj.focus();
			obj.select();
			return false;
		}
		else{
			return true;
		}
  	}
  	else{
  		return true;
	}
}

/*
-------------------------------------------------------------------------------------
*/
function comprobarCIF (obj) {
  cadena = obj.value;
  
  if (cadena.length == 0)
  	return (true);
	
  else if (cadena.length > 0) {
    if ( (cadena.search(pt_cif) != 0) && (cadena.search(pt_nif) != 0) ){ 
      alert(mensajes[lenguage][5]);
	  obj.focus();
	  obj.select();
	  return (false);
    }
  }

  if(validarCIF(obj) || comprobarNIF(obj,false))
  		return true;
  else{
	 	alert(mensajes[lenguage][5]);
	  	obj.focus();
	  	obj.select();
	  	return (false);
  } 
}

function validarCIF(obj){

	cadena = obj.value;
	
	var pares = 0;
    var impares = 0;
    var suma;
    var ultima;
    var unumero;
    var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I");
    var xxx;
	
	//Coge la ultima letra/numero de la cadena 
    ultima = cadena.substr(8,1);
	
	cadena = cadena.toUpperCase();
	
    for (var cont = 1 ; cont < 7 ; cont ++){

        xxx = (2 * parseInt(cadena.substr(cont++,1))).toString() + "0";
        impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1));
        pares += parseInt(cadena.substr(cont,1));
    }

    xxx = (2 * parseInt(cadena.substr(cont,1))).toString() + "0";
    impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1));

    suma = (pares + impares).toString();
    unumero = parseInt(suma.substr(suma.length - 1, 1));
    unumero = (10 - unumero).toString();
    if(unumero == 10) unumero = 0;

    if ((ultima == unumero) || (ultima == uletra[unumero]))
          return true;
    else
		  return (false);

}
/*-------------------------------------------------------------------------------------
--Nombre.......: comprobarNIF
--Descripción..: Procedimiento que comprueba el NIF introducido.
--Parámetros...: obj .- Campo del formulario donde insertamos el NIF
				 mostrar.- Booleano que indica si el NIF se muestra o no en el formulario
--Utilizado por: 
--Ult. modific.: 12/01/2010
-------------------------------------------------------------------------------------
*/
function comprobarNIF (obj,mostrar) {
  
  mayusculas(obj);
  
  cadena = obj.value;
  if(mostrar==null)
  	mostrar=true;

  if (cadena.length == 0)
  	return (true);
	
  else if (cadena.length > 0) {
    if (cadena.search(pt_nif) != 0) {
	  if(mostrar){
      	alert(mensajes[lenguage][4]);
	  	obj.focus();
	  	obj.select();
	  }
	  return (false);
    }
  }
  
  //Cadena con las letras del DNI en orden.
  var lockup = 'TRWAGMYFPDXBNJZSQVHLCKE';
  
  /*
  if (cadena.charAt(0).toUpperCase() == "X")
	numero = cadena.substr(1,7);
  else
	numero = cadena.substr(0,8);
  */
   numero = cadena.substr(0,8);
   // 23/03/2009 - Para comprobar los NIE nuevos 
   numero = numero.toUpperCase();
   numero = numero.replace(/X/,"0");
   numero = numero.replace(/Y/,"1");
   numero = numero.replace(/Z/,"2");
	  
  letra = lockup.charAt(numero % 23);
  
  if(letra == (cadena.substr(8,1)).toUpperCase())
	return (true);
	
  else {
	  if(mostrar){
      	alert(mensajes[lenguage][4]);
	  	obj.focus();
	  	obj.select();
	  }
  	return (false);
  }
  	
}

function check_obli(form,lang){
	for(i=0;i < form.length;i++){
		if(form.elements[i].className == 'FieldObl' && (form.elements[i].value == null || form.elements[i].value == '')){
			alert (mensajes[lang][0]);
			return(false);
		}
	}
	return(true);
}

function envContactar (form) {
	if(comprobarEmail(form.fldEmail) && check_obli(form,"es")){
		form.submit();
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: envInscripcion()
--Descripción..: Lanza el formulario de inscripcion si cumple las restricciones.
--Parámetros...:
--Utilizado por: frmInscripcionAfiliado.jsp
--Ult. modific.: 09/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function envInscripcion (form) {
	if(check_obli(form,"es") && comprobarNIF(form.insNIF, true) && comprobarEmail(form.insEmail) && comprobarEmail(form.insEmailConf) && emailIguales(form.insEmail, form.insEmailConf)){
		form.submit();
	}
}


/*
-------------------------------------------------------------------------------------
--Nombre.......: mostrarMensaje()
--Descripción..:  Muestra una alerta procedente de operaciones insert, upd, del.
--Parámetros...:
--Utilizado por: 
--Ult. modific.: 28/12/2009 - Beatriz
-------------------------------------------------------------------------------------
*/
function mostrarMensaje (mensaje, tipMensaje) {
	
	if (mensaje == "")
	  alert(alertas[tipMensaje])
	else
	alert (mensaje);
}
/*
-------------------------------------------------------------------------------------
--Nombre.......: escribirMensaje()
--Descripción..: Escribe una alerta procedente de operaciones insert, upd, del.
--Parámetros...:
--Utilizado por: 
--Ult. modific.: 29/12/2009 - Beatriz
-------------------------------------------------------------------------------------
*/
function escribirMensaje (mensaje, tipMensaje) {
	
	if (mensaje == "")
	  document.write(alertas[tipMensaje])
	else
	  document.write(mensaje);
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: mostrarPagina()
--Descripción..: carga la página que se le pasa por parametro.
--Parámetros...:
--Utilizado por: controlError.jsp, login.jsp
--Ult. modific.: 29/12/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function mostrarPagina(url){
	document.location.href = url;
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: valorCheckBox()
--Descripción..: Marca el valor seleccionado de un radio
--Parámetros...:
--Utilizado por: 
--Ult. modific.: 02/12/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function valorCheckBox (obj) {

var valor = '';

	if (obj.length > 1) {
		for(i=0;i<obj.length;i++) {
		   if (obj[i].checked)
				valor = obj[i].value;
		}
	}
	else {
		if (obj.checked)
			valor = obj.value;
	}
	
	return valor;
}

/*-------------------------------------------------------------------------------------
--Nombre.......: cargarForm
--Descripción..: Funcion que coge los valores introducidos en el formulario haciendo 
				 distinciones dependiendo del tipo del campo y los carga en el formulario
				 de envio.
--Parámetros...: form - Formulario de origen	
--				 formoculto	- Formulario de envio
--Utilizado por:  
--Ult. modific.: 07/01/2009
-------------------------------------------------------------------------------------
*/
function cargarForm (form, formoculto) {

	var nameFld;
	var radioCad='';

	objFrmOrigen = eval("document." + form);
	var i=0;
	while (i<objFrmOrigen.length) {

	    nameFld = objFrmOrigen.elements[i].name;

		if (nameFld.length > 0) {
			objFld = eval ("document." + formoculto+ "." + nameFld);

			if (objFld != null) {
				//Radio
				if (objFrmOrigen.elements[i].type=="radio") {
					if(radioCad.indexOf(objFrmOrigen.elements[i].name)==-1){
						objRb = eval("document." + form + "." + objFrmOrigen.elements[i].name);
						objFld.value = valorCheckBox (objRb);
						radioCad=radioCad+objFrmOrigen.elements[i].name+"/";

					}
				}

				//Checkbox
				else if (objFrmOrigen.elements[i].type=="checkbox")
					objFld.value = valorCasilla(objFrmOrigen.elements[i]);
				//Textarea
				//else if (objFrmOrigen.elements[i].type=="textarea")
					//objFld.value = replaceEnterporBRXHTML(objFrmOrigen.elements[i].value);
				//Otros
				else
					objFld.value = objFrmOrigen.elements[i].value;
		  }

		}
		i++;
	 }
}

function despuesDel (coderror, mensaje, tipMensaje) {
	if (coderror == "0")
	  alert(alertas[tipMensaje])
	else
		alert (mensaje);
		
	if (coderror == "0")
		document.location.reload();
}

function bisiesto (anyo) {
  if ((anyo % 100) == 0){
   if ((anyo % 400) == 0){ return true; }
  }
  else {
   if ((anyo % 4) == 0) { return true; }
  }
  return false;
}

function escribefecha(obj) {
	aux = obj.value;
	aux2 = "";
	aux4 = "";
	aux3 = "1234567890";
	for (irep=0;irep<aux.length;irep++)
		if (aux3.indexOf(aux.charAt(irep))>=0)
			aux2 += aux.charAt(irep);
	if (aux2.length>0 && aux2.charAt(0)>3)
		aux2 = "0" + aux2 + "";
	if (aux2.length>2 && aux2.charAt(2)>1)
		aux2 = aux2.substr(0,2)  + "0" + aux2.substr(2) + "";
	if (aux2.length>1 && aux2.charAt(0)==3 && aux2.charAt(1)>1)
		aux2 = aux2.substr(0,1);
	if (aux2.length>3 && aux2.charAt(2)==1 && aux2.charAt(3)>2)
		aux2 = aux2.substr(0,3);

	for (irep=0;irep<aux2.length;irep++)
		if ((irep==1 && aux2.length!=2) || (irep==3 && aux2.length!=4))
			aux4 += aux2.charAt(irep) + "/";
		else
			aux4 += aux2.charAt(irep);

	obj.value = aux4;
}

function val_fecha (vDia, vMes, vAnyo)
{
 if(vDia.length!=0 && vMes.length!=0 && vAnyo.length!=0)
 {
  if ((!isNaN(vDia))&&(!isNaN(vMes))&&(!isNaN(vAnyo)))
  {
   
    var dia=vDia
    var mes=vMes
    var anyo=vAnyo
    if ((mes<1)||(mes>12)) { return false; }
    if ((dia<1)||(dia>31)) { return false;}
    if ((dia>30)&&((mes==4)||(mes==6)||(mes==9)||(mes==11))){ return false; }
    if ((dia>28)&&(mes==2)&&(!bisiesto(anyo))) { return false; }
    if ((dia>29)&&(mes==2)&&(bisiesto(anyo))) { return false; }
    if (anyo<1900){ return false; }
    
    return true;
  }
  else 
  {
   return false;
  }
 }
}

function validamosfecha(cad) {
	aux = cad.value;

	eldia = aux.substr(0,2);
	elmes = aux.substr(3,2);
	elano = aux.substr(6,4);

	return val_fecha(eldia,elmes,elano);
}

function comprobarFecha (obj) {
  if (obj.value.length > 0) {
    if (!validamosfecha(obj)) {
      alert(mensajes[lenguage][7]);
	  obj.focus();
	  obj.select();
	  return (false);
    }
	else
		return (true);
  }
  else
  	return (true);
}

function validar (obj, patron) {
	var subcadena = "";
	cadena = obj.value;
	if (cadena.search(patron) != 0) {
	  subcadena = cadena.charAt(0);
	  if (subcadena.search(patron) != 0)
	    subcadena = "";
	  for (irep=1;irep<cadena.length;irep++) {
	    auxiliar = subcadena + cadena.charAt(irep);
	    if (auxiliar.search(patron) == 0)  
			subcadena += cadena.charAt(irep);	
	  }
	  obj.value = subcadena; 
	}   
}

function replaceEnterporBRXHTML (campo) {

  if (ie4) {
    campo = campo.replace (/\r\n/gi,"<BR/>");
  }
  else if ((ns6)||(ns4)) {
	campo = campo.replace (/\n/gi,"<BR/>");
    campo = campo.replace (/\r/gi,"<BR/>");

  }

  return campo;
}

function replaceBRporEnter (campo) {

  campo = campo.replace (/<BR>/gi,"\n");
  campo = campo.replace (/<BR\/>/gi,"\n");
  return campo;
}

/*-------------------------------------------------------------------------------------
--Nombre.......: deshabilitarForm
--Descripción..: Deshabilita todos los campos de un formulario.
--Parámetros...: form - Formulario a deshabilitar	
--Utilizado por: 
--Ult. modific.: 20/01/2010 Jaime
-------------------------------------------------------------------------------------
*/
function deshabilitarForm (form) {

	var nameFld;
	var radioCad='';

	objFrmOrigen = eval("document." + form);
	var i=0;
	while (i<objFrmOrigen.length) {

	    nameFld = objFrmOrigen.elements[i].name;

		if (nameFld.length > 0) {
			
			if (objFrmOrigen.elements[i].type=="radio" || objFrmOrigen.elements[i].type=="checkbox" || objFrmOrigen.elements[i].type=="select-one")
				objFrmOrigen.elements[i].disabled = "true";
			else
				objFrmOrigen.elements[i].readOnly = "true";
		}
		i++;
	 }
}

/*-------------------------------------------------------------------------------------
--Nombre.......: trim
--Descripción..: Simula el funcionamiento de la función trim() de java.
--Parámetros...: valor - texto al que hay que quitarle los espacios	
--Utilizado por: satse.jsp -> quitaEspacios()
--Ult. modific.: 29/01/2010 Jaime
-------------------------------------------------------------------------------------
*/
function trim (valor) {
  primerBlanco = /^( )+/
  ultimoBlanco = /( )+$/
  //variosBlancos = /[ ]+/g

  valor = valor.replace (primerBlanco,"");
  valor = valor.replace (ultimoBlanco,"");
  //valor = valor.replace (variosBlancos,"");

  return valor;
}

function quitaEspacios(obj){

	obj.value = trim(obj.value);

}

/*-------------------------------------------------------------------------------------
--Nombre.......: quitaEspaciosySaltos
--Descripción..: Simula el funcionamiento de la función trim() de java asi como los 
-- 				 saltos de linea sin contenido entre medias.
--Parámetros...: valor - texto al que hay que quitarle los espacios	y saltos de linea
--Utilizado por: 
--Ult. modific.: 06/05/2010 Beatriz
-------------------------------------------------------------------------------------
*/
function quitaEspaciosySaltos (obj) {  
  saltoIEFirst = /^[( )(\r\n)]+/
  saltoIELast = /[( )(\r\n)]+$/
  saltoOt1First = /^[( )\n]+/
  saltoOt1Last = /[( )\n]+$/
  saltoOt2First = /^[( )\r]+/
  saltoOt2Last = /[( )\r]+$/
  
  var valorTextArea = "";
 
  valorTextArea = obj.value;
  
  if (ie4) {
    valorTextArea = valorTextArea.replace (saltoIEFirst,"");
	valorTextArea = valorTextArea.replace (saltoIELast,"");
  }
  else if ((ns6)||(ns4)) {
	valorTextArea = valorTextArea.replace (saltoOt1First,"");
	valorTextArea = valorTextArea.replace (saltoOt1Last,"");
    valorTextArea = valorTextArea.replace (saltoOt2First,"");
	valorTextArea = valorTextArea.replace (saltoOt2Last,"");

  }
  
  // Asigna el resultado al objeto de formulario
  obj.value = valorTextArea;
  
}

function goRegistro (objFrmEnv, movimiento) {
	
	objFrmEnv.desplaza.value = movimiento;
	objFrmEnv.submit();
}

/*-------------------------------------------------------------------------------------
--Nombre.......: mostrarCapa 
--Descripción..: Muestra una capa oculta cullo nombre se pasará por parámetro
--Parámetros...: nomCapa - nombre de la capa a visualizar
--Utilizado por: 
--Ult. modific.: 23/02/2010 Jaime
-------------------------------------------------------------------------------------
*/
function mostrarCapa (nomCapa) {
	obj = document.getElementById(nomCapa);
	obj.style.visibility = "visible";
}

/*-------------------------------------------------------------------------------------
--Nombre.......: ocultarCapa
--Descripción..: Oculta una capa cullo nombre se pasará por parámetro
--Parámetros...: nomCapa - nombre de la capa a ocultar
--Utilizado por: 
--Ult. modific.: 23/02/2010 Jaime
-------------------------------------------------------------------------------------
*/
function ocultarCapa (nomCapa) {
	obj = document.getElementById(nomCapa);
	obj.style.visibility = "hidden";
}

/*-------------------------------------------------------------------------------------
--Nombre.......: lanzar_sesion
--Descripción..: Redirige a la pagina lanzada por parametro si no tenemos sesion
--Parámetros...: url - pagina de destino
--Utilizado por: cgs_sinSesion.jsp
--Ult. modific.: 05/05/2010 Jaime
-------------------------------------------------------------------------------------
*/
function lanzar_sesion (url) {
  
  if (parent.dialogArguments == undefined) {
	if (parent.window.opener == undefined) {
	  // Estamos en un iframe
	  parent.document.location.href = url; 
	}
	else {
	  // Estamos en un pop-up normal
	  parent.window.opener.document.location.href = url;
	  parent.window.close();
	}
  }
  else {
    // Estamos en un pop-up showModal
    cerrarUrlShowModal (url);
  }
}

/*-------------------------------------------------------------------------------------
--Nombre.......: comprobarAfiliacion
--Descripción..: Comprueba si el NIF pertenece a un afiliado que no sea estudiante.
--Parámetros...: 
--Utilizado por: frmInscripcionAfiliado.jsp 
--Ult. modific.: 09/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function comprobarAfiliacion() {
	
	objFrm = document.frmInscripcion;
	objFrmEnv = document.frmAfiliado;
	
	if(objFrm.insNIF.value.length == 0) {
		alert("Debe introducir un NIF/NIE para comprobar su afiliación.");
	}
	else if(comprobarNIF(objFrm.insNIF, true)) {
		cargarForm('frmInscripcion', 'frmAfiliado');
		objFrmEnv.submit();
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: despuesComprobarAfiliacion
--Descripción..: Muestra el formulario de inscripcion si se trata de un afiliado o el
--					mensaje de error en otro caso.
--Parámetros...: afiliado -> true o false (indica la afiliacion).
--Utilizado por: verAfiliacion.jsp 
--Ult. modific.: 10/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function despuesComprobarAfiliacion(codigo, mensaje) {

	if (codigo == 92) {
		document.getElementById("datosAfiliado").style.display = "";
	}
	else {
		document.getElementById("datosAfiliado").style.display = "none";
	}
	
	document.getElementById("msgError").innerHTML = mensaje;
	document.getElementById("textoError").style.display = "";
}

/*-------------------------------------------------------------------------------------
--Nombre.......: ocultarTodo
--Descripción..: Oculta los datos del formulario de inscripcion y los mensajes.
--Parámetros...: 
--Utilizado por: frmInscripcionAfiliado.jsp 
--Ult. modific.: 09/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function ocultarTodo() {
	document.getElementById("textoError").style.display = "none";
	document.getElementById("datosAfiliado").style.display = "none";
	limpiaFrmInscripcion();
}

/*-------------------------------------------------------------------------------------
--Nombre.......: limpiaFrmInscripcion
--Descripción..: Limpia los datos del formulario de inscripcion.
--Parámetros...: 
--Utilizado por: satse.js, frmInscripcionAfiliado.jsp 
--Ult. modific.: 10/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function limpiaFrmInscripcion() {
	objFrm = document.frmInscripcion;
	
	objFrm.insNombre.value = "";
	objFrm.insApellido1.value = "";
	objFrm.insApellido2.value = "";
	objFrm.insTelefono.value = "";
	objFrm.insEmail.value = "";
	objFrm.insEmailConf.value = "";
	objFrm.insNacionalidad.value = "E";
	objFrm.insPais.value = "España";
	objFrm.insPais.readOnly = true;
	objFrm.insProvincia.value = "";
	objFrm.insProvincia.disabled = false;
	objFrm.insProvincia.className = "FieldObl";
	objFrm.insCentro.value = "1";
	objFrm.insPuesto.value = "1";
}

/*-------------------------------------------------------------------------------------
--Nombre.......: comprobarPais
--Descripción..: Si el pais no es España no se introduce la provincia.
--Parámetros...: 
--Utilizado por: satse.js 
--Ult. modific.: 09/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function comprobarPais(objPais) {

	objFrm = document.frmInscripcion;
	
	if(objPais.value.toUpperCase() == "ESPAÑA") {
		objFrm.insProvincia.disabled = false;
		objFrm.insProvincia.className = "FieldObl";
	}
	else {
		objFrm.insProvincia.disabled = true;
		objFrm.insProvincia.value = "";
		objFrm.insProvincia.className = "FieldOpc";
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: emailIguales
--Descripción..: Comprueba que el valor del email y el email de confimacion sean iguales.
--Parámetros...: 
--Utilizado por: satse.js
--Ult. modific.: 09/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function emailIguales (objEmail, objEmailConf) {
	if(objEmail.value != objEmailConf.value) {
		alert("El email y el email de confirmación deben ser exactamente iguales.");
		return false;
	}
	else {
		return true;
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: comprobarNac
--Descripción..: Si la nacionalidad no es española se podra introducir el pais.
--Parámetros...: 
--Utilizado por: frmInscripcion.jsp, frmInscripcionAfiliado.jsp
--Ult. modific.: 10/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function comprobarNac(objNac) {
	
	objFrm = document.frmInscripcion;

	if (objNac.value == "E") {
		objFrm.insPais.value = "España";
		objFrm.insPais.readOnly = true;
		objFrm.insProvincia.disabled = false;
		objFrm.insProvincia.className = "FieldObl";
	}
	else {
		objFrm.insPais.value = "";
		objFrm.insPais.readOnly = false;
		objFrm.insProvincia.value = "";
		objFrm.insProvincia.disabled = true;
		objFrm.insProvincia.className = "FieldOpc";
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: comprobarDoc()
--Descripción..: Si la nacionalidad es española solo permite introducir en NIF/NIE, si
--					es otra se puede elegir entre NIF/NIE o pasaporte.
--Parámetros...:
--Utilizado por: frmInscripcion.jsp
--Ult. modific.: 11/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function comprobarDoc(objNac) {
	
	objFrm = document.frmInscripcion;

	if (objNac.value == "E") {
		objFrm.fldDocumento[0].checked = "checked";
		objFrm.fldDocumento[0].disabled = true;
		objFrm.fldDocumento[1].disabled = true;
	}
	else {
		objFrm.fldDocumento[1].checked = "checked";
		objFrm.fldDocumento[0].disabled = false;
		objFrm.fldDocumento[1].disabled = false;
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: envInscripcionNoAfi()
--Descripción..: Lanza el formulario de inscripcion si cumple las restricciones.
--Parámetros...:
--Utilizado por: frmInscripcion.jsp
--Ult. modific.: 11/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function envInscripcionNoAfi (form) {
	
	nifValido = true;

	if (form.fldDocumento[0].checked) {
		nifValido = comprobarNIF(form.insNIF, true);
	}
	else {
		// Comprueba que el pasaporte tenga 9 caracteres
		nifValido = comprobarPasaporte(form.insNIF);
	}
	
	if (nifValido && check_obli(form,"es") && comprobarEmail(form.insEmail) && comprobarEmail(form.insEmailConf) && emailIguales(form.insEmail, form.insEmailConf)){
		form.submit();
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: comprobarPasaport()
--Descripción..: Comprueba que se introduzcan los 9 primeros caracteres del pasaporte.
--Parámetros...:
--Utilizado por: frmInscripcion.jsp
--Ult. modific.: 15/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function comprobarPasaporte (obj, mostrar) {
	
	mayusculas(obj);
  
	cadena = obj.value;
	if(mostrar==null) {
		mostrar=true;
	}

	if (cadena.length == 0) {
 		return (true);
	}
	else if (cadena.length > 0) {
		if (cadena.search(pt_pas) != 0) {
			if(mostrar){
				alert(mensajes[lenguage][12]);
				obj.focus();
				obj.select();
			}
			return (false);
		}
		else {
			return (true);
		}
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: limpiaFrmInscripcionNoAfi()
--Descripción..: Limpia el formulario de inscripcion para no afiliados.
--Parámetros...:
--Utilizado por: frmInscripcion.jsp
--Ult. modific.: 11/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function limpiaFrmInscripcionNoAfi () {
	
	objFrm = document.frmInscripcion;
	
	objFrm.reset();
	comprobarNac(objFrm.insNacionalidad);
	comprobarDoc(objFrm.insNacionalidad);
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: despuesComprobarIns()
--Descripción..: Si existe error lo muestra y si no lanza el formulario para crear la preinscripcion.
--Parámetros...:
--Utilizado por: frmInscripcion.jsp
--Ult. modific.: 15/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function despuesComprobarIns(codigo, msg, formapago) {
	
	if (codigo != '0') {
		alert(msg);
	}
	else {
		if (formapago == '2') { // Pago con tarjeta
			document.frmPreInscripcion.submit();
		}
		else if (formapago == '3') { //Pago por transferencia
			document.frmInscripcionTrans.submit();
		}
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: envAccesoAdmin()
--Descripción..: Envio formulario de acceso al administrador.
--Parámetros...:
--Utilizado por: acceso_admin.jsp
--Ult. modific.: 14/02/2011 - Beatriz
-------------------------------------------------------------------------------------
*/
function envAccesoAdmin (form) {
	if (check_obli(form,"es")){
		form.submit();
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: envRecordar()
--Descripción..: Envio formulario de recordar contraseña.
--Parámetros...:
--Utilizado por: recordar.jsp
--Ult. modific.: 17/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function envRecordar (form) {

	if (check_obli(form,"es") && comprobarEmail(form.astEmail)) {
		form.submit();
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: cargarSelect()
--Descripción..: Carga un valor en una lista select para seleccionar el valor deseado
--Parámetros...:
--Utilizado por: cgs12_adLstIns.jsp
--Ult. modific.: 18/02/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function cargarSelect (objSelect, valor) {
	objSelect.value = valor;
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: marcarCheckBox()
--Descripción..: Marca el valor seleccionado de un radio
--Parámetros...:
--Utilizado por: 
--Ult. modific.: 02/12/2011 - Jaime
-------------------------------------------------------------------------------------
*/
function marcarCheckBox (objRb, valor) {

	if (objRb.length > 1) {
		for(i=0;i<objRb.length;i++) { 
			if (objRb[i].value == valor)    
			  objRb[i].checked = true;
			else
			  objRb[i].checked = false;
		}
	}
	else {
		if (objRb.value == valor)    
		  objRb.checked = true;
		else
		  objRb.checked = false;
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: fechaMenorIgual()
--Descripción..: Comprueba que una fecha sea menor que otra
--Parámetros...:
--Utilizado por: 
--Ult. modific.: 20/01/2012 - Jaime
-------------------------------------------------------------------------------------
*/
function fechaMenorIgual(fecha1,fecha2){
	var anio1=eval(fecha1.substring(6,10));
	var mes1=eval(fecha1.substring(3,5));
	var dia1=eval(fecha1.substring(0,2));
	var nfecha1=(anio1*10000)+(mes1*100)+dia1;
	var anio2=eval(fecha2.substring(6,10));
	var mes2=eval(fecha2.substring(3,5));
	var dia2=eval(fecha2.substring(0,2));
	var nfecha2=(anio2*10000)+(mes2*100)+dia2;
	var menor;
	if (nfecha1<=nfecha2) 
		menor=true;
	else 
		menor=false;
	return menor;
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: enviarSugerencia()
--Descripción..: Envia el formulario para insertar una sugerencia
--Parámetros...:
--Utilizado por: 
--Ult. modific.: 24/01/2012 - Jaime
-------------------------------------------------------------------------------------
*/
function enviarSugerencia () {
	objFrm = document.frmSugerencia;
	if (objFrm.sugContenido.value.length > 0) {
		objFrm.submit();
	}
	else {
		alert('Debe insertar el texto con la sugerencia.');
	}
}

/*
-------------------------------------------------------------------------------------
--Nombre.......: despuesInsSugerencia()
--Descripción..: Acciones a realizar despues de insertar una sugerencia
--Parámetros...:
--Utilizado por: 
--Ult. modific.: 24/01/2012 - Jaime
-------------------------------------------------------------------------------------
*/
function despuesInsSugerencia (coderror, mensaje) {
	alert(mensaje);
	if (coderror == "0") {
		ocultarCapa("sugerencias");
		document.frmSugerencia.sugContenido.value = "";
	}
}
