var rutaRelativa="";
// Variable temporal de localizacin de los archivos de idioma
//var rutaIdiomaTemporal = location.href.split("vgndes01")[0]+"vgndes01/js/idiomas/";
var rutaIdiomaTemporal = "/js/idiomas/";
// Fin

var automaticScript = false;
var w3c =(navigator.userAgent.indexOf("Gecko")!=-1 || navigator.userAgent.indexOf("Opera")!=-1 );

// Manejandor de eventos  ( by Scott Andrew: www.scottandrew.com):
var e = {
	addEvent : function(obj, evType, fn, useCapture){
		if (obj.addEventListener){
			obj.addEventListener(evType, fn, useCapture);
			return true;
		}else if (obj.attachEvent){
			var r = obj.attachEvent("on"+evType, fn);
			return r;
		}else {
			return false; 
		}
	}
}

//Obtine el idioma de la aplicacion y carga los literales -que se manejan en cliente - en base al idioma del aplicativo
var idiomaAplicacion={
	codIdioma:null,
	idiomaPorDefecto:"es",
	rutaScripts:location.href.split("portal")[0]+"js/",
	rutaIdioma:rutaIdiomaTemporal,
	//rutaIdioma:"js/idiomas/",
	literal:function(l){
		return eval("arrLit_"+idiomaAplicacion.codIdioma+"['"+l+"']")
	},
	cargaIdioma:function(){
		var htmlLang=document.getElementsByTagName("html")[0].lang.toLowerCase()
		idiomaAplicacion.codIdioma=(idiomaAplicacion.codIdioma=="")? idiomaAplicacion.idiomaPorDefecto.toUpperCase():htmlLang;
		document.write("<script  src='"+rutaRelativa+idiomaAplicacion.rutaIdioma+"lang_"+idiomaAplicacion.codIdioma +".js' language='JavaScript' ><\/script>")
	}
}
/*
document.getElementsByClassName=function(className) {
	var data = [];
	var node=(document.getElementById("contenedor"))? document.getElementById("contenedor"):document;
	var tags = node.getElementsByTagName("*") ? node.getElementsByTagName("*") : document.all;
	for(var i=0;i<tags.length;i++) { if(tags[i].className == className) data[data.length]=tags[i];}
	return data;
}
*/
document.getElementsByClassName=function(className){
	var data = [];
	var node=(document.getElementById("wrapper"))? document.getElementById("wrapper"):document;
	//var tags = node.getElementsByTagName("*") ? node.getElementsByTagName("*") : document.all;    
	var tags = (!document.all) ? node.getElementsByTagName("*") : document.all
	for(var i=0;i<tags.length;i++) { if(tags[i].className == className) data[data.length]=tags[i];}
	return data;
} 

//Obtiene el contraste del aplicativo(normal=cn o alto contraste = ac ) 
var contraste={
	alto:false,
	strContraste:"cn",
	strAc:"/ac/",   
	strCn:"/cn/",  
	calcula:function()
	{
		var btnSRC = document.getElementById("btnSeleccionar").src;
		contraste.alto = (btnSRC.indexOf(contraste.strAc)!=-1)? true:false
	}
}

//Gestiona la presentacion del separador del modulo "pestanias"
var presentacionPestanias={
	classActiva:"activa",
	load: function(){
		var act=null;
		btnPest=document.getElementById("pestanias1")
		for(var ee=0;ee<btnPest.childNodes.length;ee++){
			if(btnPest.childNodes[ee].className==presentacionPestanias.classActiva) {act=parseInt(ee+1)}
			if(ee==act || ee==0){btnPest.childNodes[ee].style.background="none"}
			if(ee==0 && ee==(act-1)) { 
				btnPest.childNodes[ee].style.background="#FFF"
				btnPest.childNodes[ee].style.className="activa";
			}
			
		}
	}	
}

// obtiene la posicion (x e y) de un determinado objeto
var realPosition={
	getLeft: function(objeto){
		xPos = objeto.offsetLeft; 
		tempEl = objeto.offsetParent; 
		while (tempEl != null) { 
			xPos += tempEl.offsetLeft; 
			tempEl = tempEl.offsetParent; 
		}
		return xPos;
	},
	getTop: function(objeto){
		yPos = objeto.offsetTop; 
		tempEl = objeto.offsetParent; 
		while (tempEl != null) {
			yPos += tempEl.offsetTop; 
			tempEl = tempEl.offsetParent; 
		}
	    return yPos;
	}
}
//Gestiona la presentacion de los botones estandar de los formularios. 
var botones={
	tamPix:1,
	formatea:function(idBt,color){
		var nBts=document.getElementsByClassName(idBt)
		for(var rr=0;rr<nBts.length;rr++){
		
			/* calculo de posiciones donde van los pixeles para formatear el diseo del boton */
			var pos1=[realPosition.getTop(nBts[rr]),realPosition.getLeft(nBts[rr]) ]
			var pos2=[realPosition.getTop(nBts[rr]),parseInt(realPosition.getLeft(nBts[rr])+nBts[rr].offsetWidth)-botones.tamPix]
			var pos3=[parseInt(pos1[0]+nBts[rr].offsetHeight)-botones.tamPix,pos1[1] ]
			var pos4=[pos3[0],pos2[1]]
			
			/* creo las capas */
			for(var ee=0;ee<4;ee++){
				pix=document.createElement('div');
				pix.id=idBt+"pixel"+rr+ee
				pix.style.overflow="hidden"
				pix.style.backgroundColor=color;
				pix.style.position="absolute"
				pix.style.width=botones.tamPix+"px"
				pix.style.height=botones.tamPix+"px";
				document.getElementsByTagName("body")[0].appendChild(pix);
			}
			
			// IE calcula la posicion de forma distinta a todos los demas navegadores(con 2px de diferencia);
			var Inc=(w3c)? 0:2;			
			
			/* asigno posiciones*/
			document.getElementById(idBt+"pixel"+rr+"0").style.top= parseInt(Inc+pos1[0])+"px"
			document.getElementById(idBt+"pixel"+rr+"0").style.left= parseInt(Inc+pos1[1])+"px"
			document.getElementById(idBt+"pixel"+rr+"1").style.top= parseInt(Inc+pos2[0])+"px"
			document.getElementById(idBt+"pixel"+rr+"1").style.left= parseInt(Inc+pos2[1])+"px"
			document.getElementById(idBt+"pixel"+rr+"2").style.top= parseInt(Inc+pos3[0])+"px"
			document.getElementById(idBt+"pixel"+rr+"2").style.left= parseInt(Inc+pos3[1])+"px"
			document.getElementById(idBt+"pixel"+rr+"3").style.top= parseInt(Inc+pos4[0])+"px"
			document.getElementById(idBt+"pixel"+rr+"3").style.left= parseInt(Inc+pos4[1])+"px"			
		}
	}
}
// crea el aspecto y comportamiento del menu de seleccion del lenguaje de la aplicacion
var MenuLanguage = {
	
	oculto:null, 
	activadoEvento:false,
	idSelIdm:"idioma",
	
	load:function(){
		if(document.getElementById("lenguaje")) MenuLanguage.crear();
		return false;
	},
	crear: function(){
		var capaIdm=document.getElementById('lenguaje');
		//Cabecera 
		tituloIdioma=document.createElement('div')
		tituloIdioma.id="titIdioma"
		cabIdioma=document.createElement('h2')
		cabText = document.createTextNode(document.getElementById("titularIdioma").innerHTML); 
		cabIdioma.appendChild(cabText)
		tituloIdioma.appendChild(cabIdioma)
		
		//Boton
		var btnIdioma=document.createElement('div');
		btnIdioma.id="btIdioma";
		var btnEnlace=document.createElement('a')
		btnEnlace.id="selIdioma";
		var imgEnlace=document.createElement('img');
		
		var sourceOrigen = (contraste.alto)?   contraste.strAc:contraste.strCn;
		imgEnlace.src = rutaRelativa+"/imagenes"+sourceOrigen+"cboDesing_01.gif";
		imgEnlace.id="imgCbIdioma"
		
		btnEnlace.appendChild(imgEnlace)
		btnIdioma.appendChild(btnEnlace)
		var cbIdm = document.getElementById(MenuLanguage.idSelIdm)
		
		btnEnlace.onclick=MenuLanguage.gesPliege;
		btnEnlace.onkeypress=MenuLanguage.mostrar;

		btnEnlace.onmouseout=MenuLanguage.ocultar;

		//Listado
		listadoIdiomas=document.createElement("div");
		listadoIdiomas.id="listaIdioma";		
		
		var ulIdm=document.createElement("ul")
		ulIdm.onmouseover=MenuLanguage.mostrar;
		ulIdm.onmouseout=MenuLanguage.ocultar;		
		
		var liIdm,aIdm,texIdm;

		for (var x=1;x<cbIdm.length;x++){
		
			liIdm = document.createElement('li');
			aIdm = document.createElement('a');
			var locationNav = location.href;
			var caracterConcatenado = (locationNav.indexOf("?")==-1)? "?":"&";
			if(locationNav.indexOf(MenuLanguage.idSelIdm)!=-1)
			{
				var arrLocation = locationNav.split(MenuLanguage.idSelIdm);
				locationNav = arrLocation[0];
				caracterConcatenado = "";
			}
			aIdm.href=locationNav+caracterConcatenado+MenuLanguage.idSelIdm+"="+cbIdm[x].value;
			
			
			txtIdm =document.createTextNode(cbIdm[x].text);  
			
			aIdm.appendChild(txtIdm);
			liIdm.appendChild(aIdm);
			ulIdm.appendChild(liIdm);
		}
		listadoIdiomas.appendChild(ulIdm);
		
		//***** ultima anidacion en la capa principal
		capaIdm.innerHTML="";
		capaIdm.appendChild(tituloIdioma)
		capaIdm.appendChild(btnIdioma)
		capaIdm.appendChild(listadoIdiomas)
		capaIdm.style.display="block";

	},
	mostrar:function(){
		if(MenuLanguage.activadoEvento){
			clearTimeout (MenuLanguage.oculto)
			
			var obj_aux = document.getElementById("titIdioma");
			var MiX = realPosition.getLeft(obj_aux);
			var MiY = realPosition.getTop(obj_aux);
			var difT=tituloIdioma.offsetHeight;
			
			if(listadoIdiomas){
				listadoIdiomas.style.display="block"
				listadoIdiomas.style.position = "absolute";
				listadoIdiomas.style.top =parseInt(MiY+difT)+"px"; 
				listadoIdiomas.style.left =parseInt(MiX)+"px";
				listadoIdiomas.style.zIndex = 2;
			}	
		}
	}, 
	ocultar: function(){
		if(MenuLanguage.activadoEvento)
			MenuLanguage.oculto= setTimeout("MenuLanguage.ocultarAux()",750);
		
	}, 
	ocultarAux:function(){
		clearTimeout (MenuLanguage.oculto)
		listadoIdiomas.style.display="none"
	}, 
	gesPliege:function (){
		if(listadoIdiomas.style.display=="block"){
			MenuLanguage.activadoEvento=false;
			listadoIdiomas.style.display="none"
			clearTimeout (MenuLanguage.oculto)
		}else{		
			MenuLanguage.activadoEvento=true;
			MenuLanguage.mostrar()
		}
	}	
}

// Gestiona el enlace volver( ***en desarrollo*** )
var volver={
	carga:function(){
		vol=document.getElementsByClassName("objectBack")
		var sourceOrigen = (contraste.alto)?   contraste.strAc:contraste.strCn;
		
		for(var ww=0;ww<vol.length;ww++){
			var volEnlace=document.createElement('a')
			volEnlace.href="#";
			volEnlace.id="scriptBtnVolver"+ww;
			var imgBack=document.createElement('img')
			imgBack.src=rutaRelativa+'/imagenes'+sourceOrigen+'ico_back.gif';
			imgBack.alt='';
			txt=document.createTextNode(idiomaAplicacion.literal("volver"));
			volEnlace.appendChild(imgBack)
			volEnlace.appendChild(txt)
			vol[ww].appendChild(volEnlace)
			
			document.getElementById("scriptBtnVolver"+ww).onclick=volver.retrocede;
			//document.getElementById("scriptBtnVolver"+ww).onkeypress=volver.retrocede;
			document.getElementById("scriptBtnVolver"+ww).onkeypress=volver.filtraTab;
		}
	},
	filtraTab:function(e){
		if(window.event) {
			// IE	
			keynum = e.keyCode;
			volver.retrocede();
		}else if(e.which){
		 // Netscape/Firefox/Opera
			keynum = e.which
			volver.retrocede();
		}
	},
	retrocede:function(){
		if(w3c)history.go(-1)
		else history.back()
		return false;
	}
}

var imprimir={
	carga:function(){
		if(window.print){
			listadoTareas=document.getElementById("listTareas");
			
			liImpresion=document.createElement("li")
			liImpresion.className="print";
			
			enlaceImpresion=document.createElement('a')
			enlaceImpresion.href="#"
			textoImpresion = document.createTextNode(idiomaAplicacion.literal("imprimir"));
			enlaceImpresion.appendChild(textoImpresion)
			liImpresion.appendChild(enlaceImpresion)
			for(var rr=0;rr<listadoTareas.childNodes.length;rr++){
				if(listadoTareas.childNodes[rr].tagName=="LI"){
					primeraOpcion=listadoTareas.childNodes[rr];
					break;
				}
			}
			listadoTareas.insertBefore(liImpresion,primeraOpcion);
			
			enlaceImpresion.onclick=imprimir.imprime
			//enlaceImpresion.onkeypress=imprimir.imprime
		}

	},
	imprime:function(){window.print();}	
}
// Abrir ventantas nuevas
var ventana={
	abrir:function(urlWin,nameWin,w,h){
		if(arguments.length>4){valueScroll = "scrollbars=yes,";}
		else{valueScroll="";}
		window.open(urlWin,nameWin,"height="+h+",width="+w+","+valueScroll+"status=yes,top=0,left=0,toolbar=no,menubar=no,location=no");
	}
}
//Gestiona el continido de una capa dada
var tatamientoContenido={
	borrar:function(idLayer){document.getElementById(idLayer).innerHTML="";},
	aniadir:function(idLayer,suplemento,tipoSuplemento){
		var contenido = document.getElementById(idLayer).innerHTML;
		suplemento = tatamientoContenido.formatearSupelemto(suplemento,tipoSuplemento);
		document.getElementById(idLayer).innerHTML = contenido + suplemento;
	},
	sustituir:function(idLayer,nuevoContent,tipoSuplemento){
		nuevoContent = tatamientoContenido.formatearSupelemto(nuevoContent,tipoSuplemento);
		document.getElementById(idLayer).innerHTML=nuevoContent;
	},
	formatearSupelemto:function(suplemento,tipoSuplemento){
		switch(tipoSuplemento){
			case "parrafo": suplementoFormat = "<p>"+suplemento+"</p>"; break;
			default:suplementoFormat =suplemento; 
		}
		return suplementoFormat;
	}
}
//aplicacion de estilos mediante javascript
var estilos={
	aplicar: function(obj,propiedad,valor){eval("obj.style."+propiedad+"=valor")}
}
//Controla el margen de los textos del listado especial
var listadoEspecial={
	txtmargin:"70px",
	propiedad:"marginLeft",
	load:function(){
		var noticias=document.getElementsByClassName("noticia")
		var idChild=(w3c)? 1:0;
		for(var pp=0;pp<noticias.length;pp++){	
			var eltxt=noticias[pp].childNodes[parseInt(idChild+4)]
			if(noticias[pp].childNodes[idChild].tagName=="IMG" && eltxt){
				estilos.aplicar(eltxt,listadoEspecial.propiedad,listadoEspecial.txtmargin)
			}
		}
	}
}
//Asigna una classe al uttimo elemento de un listado dado
var ultimoElemento={
	asigna:function(ob,cl){
		var obj=document.getElementsByClassName(ob)
		for (var nn=0;nn<obj.length;nn++){
			for(var kk=7;kk>=0;kk--){
				if(obj[nn].childNodes[kk]){
					if(obj[nn].childNodes[kk].tagName=="LI"){
						obj[nn].childNodes[kk].className=cl;
						break;
					}
				}
			}
		}
	}
}

var cierre={
	crear:function()
	{
		closeLink=document.getElementById("cerrar")
		
		var cierreEnlace=document.createElement('a')
		cierreEnlace.href="#";
		cierreEnlace.id="scriptBtnCierre";
		
		var imgCierre=document.createElement('img')
		imgCierre.src=rutaRelativa+"/imagenes/cn/aspaCierre.gif";
		cierreEnlace.appendChild(imgCierre)

		closeLink.appendChild(cierreEnlace)
		document.getElementById("scriptBtnCierre").onclick=function(){
			self.close();
		}
	}
}

/*****************************************************************************************/
var listadoMenu = {
	listExisted: null,
	opcSelected: null,
	load:function()
	{
		listExisted = document.getElementById("listDesplegable");
		if(listExisted) listadoMenu.asignoEvent();
	},
	asignoEvent:function()
	{
		var sourceOrigen= (contraste.alto)? contraste.strAc:contraste.strCn;
		var elemListado = document.getElementsByClassName("plegable");

		for(var i=elemListado.length-1; i>=0; i--)
		{
			var imgListado ="<a href='#' onclick='listadoMenu.marcarOpcSel(this.parentNode);return false;' class='lnkDesplegable'><img src='/imagenes/cn/imgDesplegar.gif' alt='Icono plegar/desplegar' /></a> ";
			var contentElement = elemListado[i].innerHTML;
			elemListado[i].innerHTML = imgListado+contentElement;
		}
		listadoMenu.plegarElements();
	},
	plegarElements:function(e)
	{
		var elemListado = document.getElementsByClassName("plegable");
		for(var i=elemListado.length-1; i>=0; i--){
			for(var p=0; p<elemListado[i].childNodes.length; p++){
				if(elemListado[i].childNodes[p].tagName=="UL")
					elemListado[i].childNodes[p].style.display="none";
			}
		}
		
	},
	marcarOpcSel:function(e)
	{
		//listadoMenu.plegarElements();
		for(var i=0; i<e.childNodes.length; i++)
		{
			if(e.childNodes[i].tagName=="UL")
			{
				if(e.childNodes[i].style.display=="block"){					
					e.childNodes[0].childNodes[0].src="/imagenes/cn/imgDesplegar.gif";
					e.childNodes[i].style.display="none";
				}
				else{
					e.childNodes[0].childNodes[0].src="/imagenes/cn/imgPlegar.gif";
					e.childNodes[i].style.display="block";
				}
			}
		}
	}
}


/*****************************************************************************************/
// Crea etiquetas para mostrar completo el option  en los select con class=selectTagged
selectTag = {
	create:function(selectInst, instNo){
		var maxNumChar = 26;
		var tagText = document.createTextNode('Val');
		
		var tagList	= document.createElement('div');
		tagList.id = "capaTag"+instNo.toString();
		tagList.className = "capaTag";
		tagList.appendChild(tagText);
		var tagListWrap	= document.createElement('div');
		tagListWrap.id = "capaTagWrap"+instNo.toString();
		tagListWrap.className = "capaTagWrap";
		tagListWrap.appendChild(tagList);
		var parentDiv=selectInst.parentNode;//selecciona padre de SELECT
		parentDiv.insertBefore(tagListWrap, selectInst);//inserta tag al padre de SELECT, delante de SELECT
		tagList.style.display="none";
		
		
		selectInst.onpropertychange = function (){
			if (this.selectedIndex!=0){
				tagText.data = this.options[this.selectedIndex].text;
				(this.options[this.selectedIndex].text.length > maxNumChar)?document.getElementById(tagList.id).style.display="block":document.getElementById(tagList.id).style.display="none";
			}
			else tagList.style.display="none";
		}

		selectInst.onblur = selectInst.onmouseout = function (){
			document.getElementById(tagList.id).style.display="none";
		}
	}
}



/*****************************************************************************************/
// gestiona atraves del manejador de eventos cuando ha de realizar una accion o asiganr una accion 
var acciones={
	existeId:function(cid){
		if(document.getElementById(cid)) return true;
		return false;
	},
	existeClase:function(cClass){
		if(document.getElementsByClassName(cClass).length>0)return true;
		return false
	},
	load:function() {
		/*
		if(acciones.existeId("txtBuscar")){
			document.getElementById("txtBuscar").onfocus=function(){
				if(document.getElementById("txtBuscar").value=txtLngBuscar)
					document.getElementById("txtBuscar").value="";
			}
			document.getElementById("txtBuscar").onblur=function(){
				if(document.getElementById("txtBuscar").value=="")
					document.getElementById("txtBuscar").value=txtLngBuscar;
			}			
		
		}	
		*/
		if(acciones.existeId("btnSeleccionar")){contraste.calcula();}
//MenuLanguage.load();
		if(acciones.existeId("pestanias1")){presentacionPestanias.load();};
		if(acciones.existeId("listTareas")){imprimir.carga();};
		if(acciones.existeClase("objectBack")){volver.carga();};
		if(acciones.existeClase("boton01")) botones.formatea("boton01","#EAEAEA");
		if(acciones.existeClase("boton02")) botones.formatea("boton02","#EAEAEA");
		if(acciones.existeClase("boton03")) botones.formatea("boton03","#EAEAEA");
		if(acciones.existeClase("seccionAyuda")) {botones.formatea("seccionAyuda","#FFF");};
		if(acciones.existeClase("seccionServicios")) botones.formatea("seccionServicios","#FFF");
		if(acciones.existeClase("listadoEspecial")) listadoEspecial.load();
		if(acciones.existeClase("listado5")) ultimoElemento.asigna("listado5","listaFinal");
		if(acciones.existeId("datosValidacion1")){validaForm.cargaScriptValidadacion();}
		if(acciones.existeId("enlaceEncuesta"))
		{
			document.getElementById("enlaceEncuesta").onclick = function(){
				ventana.abrir(document.getElementById("enlaceEncuesta").href,"Encuesta",400,360);
				return false;
			}	
		}
		if(acciones.existeId("listDesplegable") ){listadoMenu.load();}
		if(acciones.existeId("verMapa") ){
			document.getElementById("verMapa").onclick=function(){
				ventana.abrir(document.getElementById("verMapa").href,"Mapa",1010,520);
				return false;
			}
		}
		if(acciones.existeClase("selectTagged")){
			var selectTaggedObj=document.getElementsByClassName("selectTagged")
			for(var pp=0; pp<selectTaggedObj.length; pp++){
				selectTag.create(selectTaggedObj[pp],pp);
			}
		}
	}
}
var validaForm={
	cargaScriptValidadacion:function(){
		if(document.getElementById("datosValidacion1"))
		{
			if(window.valida){return;}
			else{
				automaticScript = true;
				var htmlHead=document.getElementsByTagName("head")[0]
				var eleScript=document.createElement("script")
				eleScript.src=rutaRelativa+idiomaAplicacion.rutaScripts + "validar.js"
				htmlHead.appendChild(eleScript)
			}
			return true;
		}
		return false;
	}
}


if(document.getElementById){
	idiomaAplicacion.cargaIdioma();
	e.addEvent(window, 'load',acciones.load,false);
}