	/**
	 * Devuelve el valor del parámetro "arg" de la url  
	 * @author Nacho
	 * @param arg
	 * @return String 
	 */
	function getParamURL(arg) {
		var regExp = new RegExp("[&?]" + arg + "=([^&]*)&");
		var href = location.href + "&";
		if( regExp.test(href) ) {
			regExp.exec(href);
			return unescape(RegExp.$1);
		}
	}


	/**
	 * @author 
	 * @param obj
	 * @param evType
	 * @param fn
	 */
	function addEvent(obj, evType, fn){
       	if (obj.addEventListener){
	    	obj.addEventListener(evType, fn, false);
	    	return true;
	 	} else if (obj.attachEvent){
	    	var r = obj.attachEvent("on"+evType, fn);
	    	return r;
	 	} else {
	    	return false;
	 	}
	}
	
	/**
	 * Devuelve True si el último carácter introducido es un número o False en caso contrario
	 * @author Sonia
	 * @param elEvento
	 * @return boolean 
	 */
	function permiteNum(elEvento) {
 		// Variables que definen los caracteres permitidos
 		var permitidos = "0123456789";
 		var teclas_especiales = [8, 9, 37, 39, 46];
 		// 8 = BackSpace, 9 = Tabulador, 46 = Supr, 37 = flecha izquierda, 39 = flecha derecha

 		// Obtener la tecla pulsada 
		var evento = elEvento || window.event;
 		var codigoCaracter = evento.charCode || evento.keyCode;
 		var caracter = String.fromCharCode(codigoCaracter);

 		// Comprobar si la tecla pulsada es alguna de las teclas especiales
 		var tecla_especial = false;
 		for (var i in teclas_especiales) {
   			if(codigoCaracter == teclas_especiales[i]) {
     			tecla_especial = true;
     			break;
   			}
 		}

 		// Comprobar si la tecla pulsada se encuentra en los caracteres permitidos o si es una tecla especial
 		return permitidos.indexOf(caracter) != -1 || tecla_especial;
	}

	/**
	 * Muestra en una nueva ventana el mensaje pasado como parámetro
	 * @author Sonia
	 * @param msg
	 * @param idioma
	 * @param error
	 */
	function mostrarMensaje(msg, idioma, error) {
		if (error) {
			parent.window.document.getElementById("mensaje").getElementsByTagName("img")[0].src = "PastorCorporativo/img/form_err.gif";
		} else {
			parent.window.document.getElementById("mensaje").getElementsByTagName("img")[0].src = "PastorCorporativo/img/form_crr.gif";
		}
		parent.window.document.getElementById("textoMensaje").innerHTML = msg;
		//abre VentanaModal;
		parent.window.document.getElementById("mensaje").style.display="block";
		parent.window.document.getElementById("fondoMensaje").style.display="block";
	}
	
	/**
	 * Lee los valores de una tabla y genera un grafico a partir de sus valores
	 * @author Sonia
	 * @param jsp
	 */
	function generarGraficoBarras(jsp) {
		var tabla = document.getElementById("tabla");
		var listaTD = document.getElementsByTagName("td");
		var j = 0;
		var categorias = new Array();
		var valores = new Array();	
		var cat = "";
		var val = "";
		
		// Atributo headers correspondiente a las categorias del grafico
		var headersCategoria = "colum" + 1;
		// Atributo headers correspondiente a los valores de las distintas categorias del grafico
		var headersValor = "colum" + document.getElementsByTagName("th").length;
		
		for(var i = 0; listaTD[i] !=  null; ++i) {
			if(listaTD[i].headers == headersCategoria){
				cat += listaTD[i].innerHTML + ";";
				categorias[j] = listaTD[i].innerHTML;
			}
			if (listaTD[i].headers == headersValor){
				// Se eliminan todos los caracteres excepto los numericos para generar
				//	los valores de las distintas categorias del grafico
				val += listaTD[i].innerHTML.replace(/[^0-9,.]/g,"") + ";";
				valores[j] = listaTD[i].innerHTML;
				j++;
			}
		}
		
		document.getElementById("celdaImagen").setAttribute("rowSpan", categorias.length+1);
		
		var anchoCol1 = 0; // Ancho de la columna de las categorias en el grafico
		var anchoCol3 = 0; // Ancho de la columna de los valores en el grafico
		
		for (var i=0; i<categorias.length; i++) {
			var elementoTR = tabla.insertRow(-1);
			elementoTR.setAttribute("className", "ipar");
			elementoTR.setAttribute("class", "ipar");
			
			var elementoTD = elementoTR.insertCell(0);
			elementoTD.appendChild(document.createTextNode(categorias[i]));
			elementoTD.setAttribute("className", "uno aLeft");
			elementoTD.setAttribute("class", "uno aLeft");
			if (elementoTD.offsetWidth > anchoCol1) {
				anchoCol1 = elementoTD.offsetWidth;
			}
			
			elementoTD = elementoTR.insertCell(1);
			elementoTD.appendChild(document.createTextNode(valores[i]));
			if (elementoTD.offsetWidth > anchoCol3) {
				anchoCol3 = elementoTD.offsetWidth
			}
		}
		
		var anchoGrafico = tabla.offsetWidth - (anchoCol1 + anchoCol3 + 5);
		document.getElementById("imagen").src = jsp + "?cat=" + cat + "&val=" + val + "&width=" + anchoGrafico;
		
	}
	
	/**
	 * Pone a visible de forma aleatoria uno de los divs de las citas breves
	 * @author Eva
	 */
	function elijeCitaBreveAleatoria() {
		var d=document, divs, newDivs = new Array();
		
		if(!d.getElementById || !d.createElement)return;
		// Recuperamos todos los divs incluidos dentro del div con id="rightSub2"
		divs = d.getElementById("rightSub2").getElementsByTagName("div");
		// Recorremos todos los divs recuperados y ocultamos aquellos cuyo className="citaBreveAleatoria"
		// Creamos un nuevo array con los divs cuyo className="citaBreveAleatoria"
		for(i=0;i<divs.length;i++){
			if (divs[i].className=="citaBreveAleatoria"){
				newDivs.push(divs[i]);
				divs[i].style.display="none";
			}		
		}
		// Obtenemos un número aleatorio y mostramos uno de los divs del nuevo array
		var x = (Math.random() * (newDivs.length));
		x= Math.floor(x);
		newDivs[x].style.display = "block";
	}
	
	/**
	 * Agrega a Favoritos una url (en IE) o bien muestra le mensaje que se pasa como parámetro.
	 * @author 
	 * @param texto
	 * @param url
	 */
	function agregarFavoritos(texto, url) {	
		if (window.sidebar&&window.sidebar.addPanel) {		
	    	window.sidebar.addPanel(texto,url,"");
		} else {	
	    	window.external.addFavorite(url,texto);
		}
	}
	
	//------------------------------------------------------------------------------
	//redimensionarIframe: redimensiona el iframe pasado como parametro
	//------------------------------------------------------------------------------
	function redimensionarIframe() {
		// Guardamos el documento contenido en el iframe
	    var documento = this.document.body;
		// Guardamos el iframe que vamos a redimensionar
	    var iFrame = parent.window.document.getElementById(myiframe);
	    var alturaIframe = documento.scrollHeight + documento.offsetHeight - documento.clientHeight;
		// Redimensionamos la altura del iframe
	    iFrame.style.height = eval("'"+alturaIframe+"px'");
	    
	    var anchoIframe = documento.scrollWidth + documento.offsetWidth - documento.clientWidth;
	    // Redimensionamos el ancho del iframe
	    iFrame.style.width = eval("'"+anchoIframe+"px'");
	    
	}

	//******************************************************************************
	// Funcion: muestraCotizacionAccion
	// Produce:
	//	Escribe los valores de las variables de la informacion de la accion en divs
	//******************************************************************************
	function muestraCotizacionAccion() {
		var divs = document.getElementsByTagName('div');
		if (divs!=null) {
			for (i=0;i<divs.length;i++) {
				if(divs[i].getAttribute('name') == 'divPrecioCierre'){
					divs[i].innerHTML=top.ocultoBP.precioCierre;
				}
				if(divs[i].getAttribute('name') == 'divPrecioCierreEuro'){
					divs[i].innerHTML=top.ocultoBP.precioCierre+"&nbsp;&euro;";
				}
				if(divs[i].getAttribute('name') == 'divPrecioActual'){
					divs[i].innerHTML=top.ocultoBP.precioActual;
				}
				if(divs[i].getAttribute('name') == 'divPrecioActualEuro'){
					divs[i].innerHTML=top.ocultoBP.precioActual+"&nbsp;&euro;";
				}
				if(divs[i].getAttribute('name') == 'divPrecioActualEuroBP'){
					divs[i].innerHTML="BP&nbsp;"+top.ocultoBP.precioActual+"&nbsp;&euro;";
				}
				if(divs[i].getAttribute('name') == 'divDiferencia'){
					divs[i].innerHTML=top.ocultoBP.diferencia;
				}
				if(divs[i].getAttribute('name') == 'divDiferenciaPorcentaje'){
					divs[i].innerHTML=top.ocultoBP.diferencia+"&nbsp;(%)";
				}			
				if(divs[i].getAttribute('name') == 'divPrecioMaxSesion'){
					divs[i].innerHTML=top.ocultoBP.precioMaxSesion;
				}
				if(divs[i].getAttribute('name') == 'divPrecioMaxSesionEuro'){
					divs[i].innerHTML=top.ocultoBP.precioMaxSesion+"&nbsp;&euro;";
				}
				if(divs[i].getAttribute('name') == 'divPrecioMinSesion'){
					divs[i].innerHTML=top.ocultoBP.precioMinSesion;
				}
				if(divs[i].getAttribute('name') == 'divPrecioMinSesionEuro'){
					divs[i].innerHTML=top.ocultoBP.precioMinSesion+"&nbsp;&euro;";
				}
				if(divs[i].getAttribute('name') == 'divVolumenTitulos'){
					divs[i].innerHTML=top.ocultoBP.volumenTitulos;
				}
				if(divs[i].getAttribute('name') == 'divHora'){
					divs[i].innerHTML=top.ocultoBP.hora;
				}
				if(divs[i].getAttribute('name') == 'divFecha'){
					divs[i].innerHTML=top.ocultoBP.fecha;
				}
				if(divs[i].getAttribute('name') == 'divHoraFecha'){
					divs[i].innerHTML=top.ocultoBP.hora+" "+top.ocultoBP.fecha;
				}			
				if(divs[i].getAttribute('name') == 'divSpan'){
					if (top.ocultoBP.diferencia > 0) {
						divs[i].innerHTML="<strong>BP&nbsp;"+top.ocultoBP.precioActual+"&nbsp;&euro;<\/strong><span class=\"up\">"+top.ocultoBP.diferencia+"&nbsp;<\/span>";
					} else {
						divs[i].innerHTML="<strong>BP&nbsp;"+top.ocultoBP.precioActual+"&nbsp;&euro;<\/strong><span class=\"down\">"+top.ocultoBP.diferencia+"&nbsp;<\/span>";
					}
				}
				if(divs[i].getAttribute('name') == 'divSpan2'){
					if (top.ocultoBP.diferencia > 0) {
						divs[i].innerHTML="<strong>BP&nbsp;"+top.ocultoBP.precioActual+"&nbsp;&euro;<\/strong><span>"+top.ocultoBP.diferencia+"&nbsp;<\/span>";
					} else {
						divs[i].innerHTML="<strong>BP&nbsp;"+top.ocultoBP.precioActual+"&nbsp;&euro;<\/strong><span class=\"down\">"+top.ocultoBP.diferencia+"&nbsp;<\/span>";
					}
				}
				if(divs[i].getAttribute('name') == 'divSpan3'){
					if (top.ocultoBP.diferencia > 0) {
						divs[i].innerHTML="<span class=\"cotiz\">"+top.ocultoBP.precioActual+"&euro;<\/span><span class=\"valor\">"+top.ocultoBP.diferencia+"%<\/span><span><img src=\"PastorComercial\/img\/ico_val_up.gif\" alt=\"icono accion en alza\" \/><\/span>";
					} else {
						divs[i].innerHTML="<span class=\"cotiz\">"+top.ocultoBP.precioActual+"&euro;<\/span><span class=\"valor\">"+top.ocultoBP.diferencia+"%<\/span><span><img src=\"PastorComercial\/img\/ico_val_down_black.gif\" alt=\"icono accion en depreciacion\" \/><\/span>";
					}
				}
				if(divs[i].getAttribute('name') == 'divTD'){
					if (top.ocultoBP.diferencia > 0) {
						divs[i].innerHTML="<span class=\"green\">"+top.ocultoBP.diferencia+"&nbsp;<\/span>";
					} else {
						divs[i].innerHTML="<span class=\"black\">"+top.ocultoBP.diferencia+"&nbsp;<\/span>";
					}
				}
			}	
		}
	}
