var dir_img="/futuretense_cs/PortalCiudadano/img/";

//Si no es Internet Explorer, definimos la función innerText:
var isIE = (window.navigator.userAgent.indexOf("MSIE")> 0); 
var isIE=false, isMozilla=false, isSafari=false, isOpera = false;
if (navigator.userAgent.indexOf('MSIE') != -1) isIE = true;
else if (navigator.userAgent.indexOf('Safari') != -1) isSafari = true;
else if (navigator.userAgent.indexOf('Opera') != -1) isOpera = true;
else isMozilla = true;
if (!isIE){
  HTMLElement.prototype.__defineGetter__("innerText",function () { return(this.textContent); });
  HTMLElement.prototype.__defineSetter__("innerText",function (txt) { this.textContent = txt; });
}


function label(opcion, numero, imagen, num){
	path_completo =dir_img ;
	titulo = 'celda_'+ num;
	titulo = eval(new String (titulo)); 
	document.getElementById(titulo).innerHTML = opcion;
	document.images[numero].src=path_completo+imagen+".gif"; 
}

function cambia_img(imagen,nombre) {
	path_completo =dir_img;
	document.images[nombre].src=path_completo+imagen+".gif";
}

function colapsaBusqueda(objectId,imagen) {
	var objectId;
	registro=document.getElementById(objectId);
	if(registro.style.display=='none'){
		registro.style.display='block';
		cambia_img('recojer',imagen)
	}else{
		registro.style.display='none';
		cambia_img('desplegar',imagen);
	}
	return;
}

/*************************************************************/
/** Devuelve el foco de atención a un campo concreto de un  **/
/** formulario y muestra el mensaje recibido como alerta    **/
/** indicando al usuario la causa.                          **/
/** Se usa cuando al validar un formulario un campo no se   **/
/** puede proseguir dado que no se cumplen algunos          **/
/** requisitos.                                             **/
/** Si no se recibe mensaje, o este está vacío no se        **/
/** mostrará ningún mensaje de alerta al usuario.           **/
/**                                                         **/
/** @param campo Campo del formulario que se va a validar   **/
/** @param mensaje Mensaje de alerta a mostrar.             **/
/** @param divError Div de la jsp donde escribir el mensaje **/
/**       de error. Si no se recibe, se muestra en un alert **/
/*************************************************************/
function getFocus(campo, mensaje, divError) {
	campo.focus();
	//Si es una caja de texto, seleccionamos el texto
	if((campo.type == "text" || campo.type=="textarea") && (campo.value!="")) campo.select();
	if(mensaje && mensaje!="") {
		if(divError) divError.innerText =mensaje;
		else alert(mensaje);
	}
}

/***************************************************************/
/** Pone el foco en el primer campo editable de un formulario **/
/***************************************************************/
function obtenerFoco(formulario) {
	for(var i=0; i< formulario.elements.length; i++) {
//		if(formulario.elements[i].type.indexOf("select")!=-1 || formulario.elements[i].type== "text"
//		     ||  formulario.elements[i].type== "button") {
		if(formulario.elements[i].type != "hidden") {
			if(!formulario.elements[i].disabled && !formulario.elements[i].readOnly) {
				getFocus(formulario.elements[i]);
				return;
			}
		}
	}
}

/*********************************************************/
/** Quita todos los espacios en blanco de un campo      **/
/*********************************************************/
function sinEspacios(campo) {
	while(campo.value.indexOf(" ")!=-1)
		campo.value= campo.value.replace(" ", "");
}

/************************************************************/
/** Recibe una cadena y devuelve la misma quitandole los   **/
/** espacios en blanco que tenga al inicio y al final.     **/
/************************************************************/
function trim(valor) {
	//Si no tiene espacios en blanco, no hacemos nada
	if(valor.indexOf(" ") == -1 || valor.substring(0,1)=='\n' || valor.substring(0,1)=='\r') return valor;

	while(valor.substring(0,1)==' ' || valor.substring(0,1)=='\n' || valor.substring(0,1)=='\r') {
		valor = valor.substring(1,valor.length);
	}

	//Eliminar los espacios en blanco y saltos de linea finales
	while((valor.substring(valor.length-1,valor.length)==' ') || (valor.substring(valor.length-1,valor.length)=='\n')
			|| (valor.substring(valor.length-1,valor.length) == '\r')) {
		valor = valor.substring(0,valor.length-1);
	}

	return valor;
}

/*************************************************************/
/** Recorre todos los campos de un formulario y les pone    **/
/** como valor el mismo que tienen quitandoles los espacios **/
/** en blanco que tiene al inicio y al final                **/
/*************************************************************/
function trimFormulario(formulario) {
	for(var i=0; i< formulario.elements.length; i++) {
		var tipo = formulario.elements[i].type;
		if(tipo=="text" || tipo=="textarea") {
			formulario.elements[i].value = trim(formulario.elements[i].value);
		}
	}
}

/**********************************************************/
/** Pone el texto por defecto en una caja de texto        */
/** cuando al salir de él no hay texto escrito            */
/** (borrar==false), o bien lo deja en blanco al recibir  */
/** el foco (borrar==true) si el texto es el recibido     */
/** por defecto                                           */
/**********************************************************/
function textoDefault(campo, borrar, litDefault) {
	//Si se pierde el foco (borrar = false)
	if(!borrar && campo.value == "") {
		if(campo.value!=litDefault) campo.value = litDefault;
		else campo.value = campo.defaultValue;
	}
	//Si se recibe el foco (borrar == true)
	if(borrar && campo.value == campo.defaultValue && campo.value==litDefault) campo.value="";
	
	campo.style.backgroundColor = (borrar)?"#FFFFAE":"#FFFFFF"; //esta amarillo ==> gris: D7D7D7
}

/***************************************************************/
/** Comprueba si los campos obligatorios de un formulario     **/
/** tienen algún datos válido. Para ello, si hay unos valores **/
/** por defecto, verifica que no sean iguales; sino, mira si  **/
/** están vacíos. En tales casos devuelve false.              **/
/***************************************************************/
function compruebaObligatorios(nombreForm, arrCamposObligatorios, arrValoresPorDefecto) {
	for(i=0; i<arrCamposObligatorios.length; i++) {
		var campo = eval("document." + nombreForm + "." + arrCamposObligatorios[i]);
		if(campo) {
			if(arrValoresPorDefecto && campo.value.toLowerCase()== trim(arrValoresPorDefecto[i]).toLowerCase()) {
				getFocus(campo, "Campo Obligatorio");
				return false;
			}
			else  if(campo.value=="") {
				getFocus(campo, "Campo Obligatorio");
				return false;
			}
		}
	}
	//Si llega aquí es porque las validaciones son correctas.
	return true
}

/**********************************************/
/** function calcularNIF(nif)                **/
/**                                          **/
/** Funcion que valida el nif, se pasa el    **/
/** campo (caja de texto del nif)				**/
/**                                          **/
/**********************************************/
function validaNIF(campo, divError) {
	sinEspacios(campo); //Le quitamos los espacios
	var cadena = campo.value.toUpperCase();
	var nif = trim(cadena);
	campo.value= nif;
	var ceros="";
	
	//caso de la X,L,M,K, se le quita la letra y se rellena con 0 hasta longitud correcta 
	var posuno = nif.substring(0,1);
	if (posuno=="K" || posuno=="L" || posuno=="M" || posuno=="X") nif = nif.substring(1,nif.length);
	//Rellena con 0 por la izquierda
	if(nif.length<9 && nif.length!=0) {
		numeroCeros = 9-nif.length;
		for(var i=0;i<numeroCeros;i++) ceros+="0";
		campo.value=ceros+nif;
		cadena=ceros+nif;
		nif = ceros+nif;
	}
	
	if (nif.length!=9) {
		getFocus(campo, "El NIF introducido no es v\u00E1lido", divError);
		return false;
	}
	var dni = nif.substring(0,8);
	var letra = nif.substring(8,9).toUpperCase();
	
	if (!/^\d{8}$/.test(dni)) {
		getFocus(campo, "El NIF introducido no es v\u00E1lido", divError);
		return false;
	}
	
	var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
	var numero = dni%23;
	if (letra == letras.substring(numero,numero+1))  return true;
	else {
		getFocus(campo, "El NIF introducido no es v\u00E1lido", divError);
		return false;
	}
}

//////////////////////////////////////////////////////////
// Abre una ventana centrada y con un tamanno especifico.
// Si no recibe el ancho y el alto, la abre completa y en
// la posicion 0 0
//////////////////////////////////////////////////////////
var ventana = null;
function abrirUrl(pagina, ancho, alto) {
	ancho=(ancho)?ancho:screen.width;
	alto =(alto)?alto:screen.height;
	var posTop=(ancho)?((screen.height)-alto)/2:0;
	var posLeft =(alto)?((screen.width)-ancho)/2:0;
	var opciones="toolbar='0', location=no, directories=no, status=no, menubar=no, scrollbars=yes,"+
		" resizable=no, width="+ancho+", height="+alto+", top="+posTop+", left="+posLeft;
	ventana = window.open(pagina, "", opciones);
}

/*********************************************************/
/** function getTamanoImagen(imagen)                    **/
/**                                                     **/
/** Comprueba si el tamaño de la imagen es mayor que el **/
/** espacio reservado. Si es así, le cambia el tamaño   **/
/**                                                     **/
/*********************************************************/
function getTamanoImagen(imagen, ancho) {
	var anchoImagen=imagen.width;
	var anchoMax = (ancho)?ancho:600; //570;
	//Si el ancho es mayor que el que queda:
	if(anchoImagen>anchoMax) {
		imagen.width= anchoMax;
		//Disminuimos el alto tantos pixeles como a lo ancho
		imagen.height = imagen.height - (anchoImagen-anchoMax);
	}
}

/***************************************************************/
/** function validarEmail(cadena)                             **/
/**                                                           **/
/** Funcion que valida si el texto recibido es una dirección  **/
/** de correo electrónico válida.                             **/
/** @return true si es válida y false si no lo es             **/
/***************************************************************/
function validarEmail(cadena) {
	if(cadena.search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig)) {
		alert("La direcci\u00F3n de email es incorrecta.");
		return false;
	}
	return true;
}

/***************************************************************/
/** function hayRadioChequed(ctoRadio)                         **/
/** Recorre un conjunto de radios recibidos y comprueba si hay **/
/** alguno seleccionado. Devuelve true si lo hay y false si no **/
/** hay ninguno chequeado.                                     **/
/***************************************************************/
function hayRadioChequed(ctoRadio) {
	for(a=0; a<ctoRadio.length; a++) {
		if(ctoRadio[a].checked) return true
	}
	return false;
}

/*************************************************/
/** cambia el estilos a los botones si es IE    **/
/*************************************************/
function cambiaEstilosBotonesIE(formulario) {
	if(isIE && formulario || isOpera && formulario) {
		for(var i=0; i< formulario.elements.length; i++) {
			var campo = formulario.elements[i];
			if(campo.type.toLowerCase() == "button" || campo.type.toLowerCase()=="submit" || campo.type.toLowerCase()=="reset") {
				campo.className="botonIE";
			}
		}
	}
}

/*********************************************************/
/** function chequeaRadio(nombreRadio, valor)           **/
/** Selecciona el radio con name igual a "nomberRadio"  **/
/** recibido y value valor recibido en "valorRadio"     **/
/*********************************************************/
function chequeaRadio(nombreFormulario, nombreRadio, valorRadio) {
	var ctoRadio = eval("document." + nombreFormulario + "." + nombreRadio);

	for(a=0; a<ctoRadio.length; a++) {
		if(ctoRadio[a].value == valorRadio) {
			ctoRadio[a].checked = true;
			break;
		}
	}
}

function getElementbyClass(classname){
	var partscollect;
	var inc=0;
	var alltags=document.all? document.all:document.getElementsByTagName("div")
	
	for (i=0; i<alltags.length; i++){
		if (alltags[i].className==classname) {
			partscollect=alltags[i];
			return partscollect;
		}
	}
}

//Subida PortalCiudadano/img/ico_imprimir.gif
var textoImprimir = null;
function imprimirPage(url) {
	objetoImprimir = getElementbyClass("contenidos_marco_bd");
	objetoImprimir = (!objetoImprimir)?getElementbyClass("contenidos_marco_borde"):objetoImprimir;
	objetoImprimir = (!objetoImprimir)?getElementbyClass("contenidos"):objetoImprimir;
	if(objetoImprimir) {
		var ruta = url + "paginaImprimir.html";
		//ventana = window.open(ruta);
		abrirUrl(ruta, 600, 500);
		textoImprimir = objetoImprimir.innerHTML;
	}
}

function mapa(evento) {
	if (evento==0) {
		document.getElementById("roll").style.visibility="visible";
	}
	else {
		document.getElementById("roll").style.visibility="hidden";
	}
}

function pintaTituloCabecera(titulo) {
	padre = window.parent;
	if(padre && padre.textoTitulo) {
		var divTitulo = document.getElementById("tituloCabecera");
		divTitulo.innerText = padre.textoTitulo;
	}
}